Skip to content

Instantly share code, notes, and snippets.

@technitish9123
Created October 15, 2023 13:54
Show Gist options
  • Select an option

  • Save technitish9123/2c84ee1c62ebe21321537799d177e1db to your computer and use it in GitHub Desktop.

Select an option

Save technitish9123/2c84ee1c62ebe21321537799d177e1db 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.6.12+commit.27d51765.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import {Context} from "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b > a) return (false, 0);
return (true, a - b);
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a / b);
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a % b);
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) return 0;
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: division by zero");
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: modulo by zero");
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
return a - b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryDiv}.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a % b;
}
}
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
REMIX DEFAULT WORKSPACE
Remix default workspace is present when:
i. Remix loads for the very first time
ii. A new workspace is created with 'Default' template
iii. There are no files existing in the File Explorer
This workspace contains 3 directories:
1. 'contracts': Holds three contracts with increasing levels of complexity.
2. 'scripts': Contains four typescript files to deploy a contract. It is explained below.
3. 'tests': Contains one Solidity test file for 'Ballot' contract & one JS test file for 'Storage' contract.
SCRIPTS
The 'scripts' folder has four typescript files which help to deploy the 'Storage' contract using 'web3.js' and 'ethers.js' libraries.
For the deployment of any other contract, just update the contract's name from 'Storage' to the desired contract and provide constructor arguments accordingly
in the file `deploy_with_ethers.ts` or `deploy_with_web3.ts`
In the 'tests' folder there is a script containing Mocha-Chai unit tests for 'Storage' contract.
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.
Please note, require/import is supported in a limited manner for Remix supported modules.
For now, modules supported by Remix are ethers, web3, swarmgw, chai, multihashes, remix and hardhat only for hardhat.ethers object/plugin.
For unsupported modules, an error like this will be thrown: '<module_name> module require is not supported by Remix IDE' will be shown.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.2 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
* @custom:dev-run-script ./scripts/deploy_with_ethers.ts
*/
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;
import "hardhat/console.sol";
/**
* @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() {
console.log("Owner contract deployed by:", msg.sender);
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.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610185806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610098575b600080fd5b61004e6100c6565b6040518082815260200191505060405180910390f35b61006c6100cc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c4600480360360208110156100ae57600080fd5b81019080803590602001909291905050506100f0565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561014c57806001819055505b5056fea2646970667358221220f0a57fd3a1288895ac45c5bc243380bd2fb4eddc9891b2073fae50819a0dc0bf64736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x185 DUP1 PUSH2 0x60 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x98 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xC6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x14C JUMPI DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE 0xA5 PUSH32 0xD3A1288895AC45C5BC243380BD2FB4EDDC9891B2073FAE50819A0DC0BF64736F PUSH13 0x634300060C0033000000000000 ",
"sourceMap": "69:326:0:-:0;;;229:52;;;;;;;;;;265:10;257:5;;:18;;;;;;;;;;;;;;;;;;69:326;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610098575b600080fd5b61004e6100c6565b6040518082815260200191505060405180910390f35b61006c6100cc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c4600480360360208110156100ae57600080fd5b81019080803590602001909291905050506100f0565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561014c57806001819055505b5056fea2646970667358221220f0a57fd3a1288895ac45c5bc243380bd2fb4eddc9891b2073fae50819a0dc0bf64736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x98 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xC6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x14C JUMPI DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE 0xA5 PUSH32 0xD3A1288895AC45C5BC243380BD2FB4EDDC9891B2073FAE50819A0DC0BF64736F PUSH13 0x634300060C0033000000000000 ",
"sourceMap": "69:326:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;119:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;94:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;287:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;119:36;;;;:::o;94:20::-;;;;;;;;;;;;:::o;287:105::-;209:5;;;;;;;;;;195:19;;:10;:19;;;191:26;;;377:9:::1;350:24;:36;;;;191:26:::0;287:105;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "77800",
"executionCost": "20995",
"totalCost": "98795"
},
"external": {
"last_completed_migration()": "983",
"owner()": "1044",
"setCompleted(uint256)": "21134"
}
},
"methodIdentifiers": {
"last_completed_migration()": "445df0ac",
"owner()": "8da5cb5b",
"setCompleted(uint256)": "fdacd576"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "last_completed_migration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "completed",
"type": "uint256"
}
],
"name": "setCompleted",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "last_completed_migration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "completed",
"type": "uint256"
}
],
"name": "setCompleted",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Migrations.sol": "Migrations"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Migrations.sol": {
"keccak256": "0x39cfa617e7b1cfbdb64eb08904310179c8b7b71f2954c1bce43493c6631c0e8e",
"license": "GPL",
"urls": [
"bzz-raw://67de3e8a28e4e9f13bbe07db2b397409ad07651b69dd8c7ff2f68fb76be59dd1",
"dweb:/ipfs/QmXV1UswV3YGvERM3iJW7myKAEEf2JMdHSZCAggj2KNbnA"
]
}
},
"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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60806040526000600c556000600d553480156200001b57600080fd5b50604051620020fd380380620020fd833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008951111515620000e457600080fd5b600086111515620000f457600080fd5b6000881115156200010457600080fd5b6000851115156200011457600080fd5b6000811115156200012457600080fd5b600183101515156200013557600080fd5b88600190805190602001906200014d92919062000291565b50876007819055508360068190555080600b819055508660048190555082600a819055508560088190555084600981905550620001a6600a546009546200027a6401000000000262001aad179091906401000000009004565b600d81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002295781600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200026b565b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050505050505062000340565b600081838115156200028857fe5b04905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002d457805160ff191683800117855562000305565b8280016001018555821562000305579182015b8281111562000304578251825591602001919060010190620002e7565b5b50905062000314919062000318565b5090565b6200033d91905b80821115620003395760008160009055506001016200031f565b5090565b90565b611dad80620003506000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630f0044bf1461016f57806310fe9ae8146101b0578063112f84e114610207578063124b65b41461023257806317d7de7c1461025d5780632b4e4e96146102ed57806334ce998a146103735780633af0ca191461039e57806343b07485146103f5578063554d578d1461043657806366e3d5ac1461046157806370843ae9146104ae578063715018a6146104d95780637a36c307146104f05780637aafdeee146105565780637f1e7d41146105815780638da5cb5b146105c257806395be1f1a14610619578063bb305ef21461065a578063cb57b0a5146106c7578063d087d288146106f2578063d561bf531461071d578063d87f0afc14610748578063e0e09e0f14610775578063e5759436146107a0578063ed88c68e146107cb578063f2fde38b146107d5578063f8b2cb4f14610818575b600080fd5b34801561017b57600080fd5b5061019a6004803603810190808035906020019092919050505061086f565b6040518082815260200191505060405180910390f35b3480156101bc57600080fd5b506101c56108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021357600080fd5b5061021c61090e565b6040518082815260200191505060405180910390f35b34801561023e57600080fd5b50610247610954565b6040518082815260200191505060405180910390f35b34801561026957600080fd5b5061027261095e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b2578082015181840152602081019050610297565b50505050905090810190601f1680156102df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f957600080fd5b50610371600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610a00565b005b34801561037f57600080fd5b50610388610d7b565b6040518082815260200191505060405180910390f35b3480156103aa57600080fd5b506103b3610d85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040157600080fd5b5061042060048036038101908080359060200190929190505050610daf565b6040518082815260200191505060405180910390f35b34801561044257600080fd5b5061044b610e36565b6040518082815260200191505060405180910390f35b34801561046d57600080fd5b506104ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e40565b005b3480156104ba57600080fd5b506104c36111e3565b6040518082815260200191505060405180910390f35b3480156104e557600080fd5b506104ee6111ed565b005b3480156104fc57600080fd5b50610554600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506112ef565b005b34801561056257600080fd5b5061056b6117e5565b6040518082815260200191505060405180910390f35b34801561058d57600080fd5b506105ac600480360381019080803590602001909291905050506117ef565b6040518082815260200191505060405180910390f35b3480156105ce57600080fd5b506105d761180c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561062557600080fd5b5061064460048036038101908080359060200190929190505050611831565b6040518082815260200191505060405180910390f35b34801561066657600080fd5b506106856004803603810190808035906020019092919050505061184e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d357600080fd5b506106dc61188b565b6040518082815260200191505060405180910390f35b3480156106fe57600080fd5b50610707611895565b6040518082815260200191505060405180910390f35b34801561072957600080fd5b5061073261189f565b6040518082815260200191505060405180910390f35b34801561075457600080fd5b50610773600480360381019080803590602001909291905050506118a9565b005b34801561078157600080fd5b5061078a61191d565b6040518082815260200191505060405180910390f35b3480156107ac57600080fd5b506107b5611927565b6040518082815260200191505060405180910390f35b6107d3611931565b005b3480156107e157600080fd5b50610816600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611990565b005b34801561082457600080fd5b50610859600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119f7565b6040518082815260200191505060405180910390f35b600080600061089c6009546010600087815260200190815260200160002054611a4090919063ffffffff16565b91506108d86108c9600d546011600088815260200190815260200160002054611a5990919063ffffffff16565b83611a9190919063ffffffff16565b90508092505050919050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061091b61188b565b915061092561189f565b905061094d606461093f8484611a5990919063ffffffff16565b611aad90919063ffffffff16565b9250505090565b6000600954905090565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000808251111515610a1157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a4d57600080fd5b610a56336119f7565b825111151515610a6557600080fd5b600090505b8151811015610cd0573373ffffffffffffffffffffffffffffffffffffffff16600f60008484815181101515610a9c57fe5b90602001906020020151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580610b235750600a54601160008484815181101515610b0857fe5b90602001906020020151815260200190815260200160002054145b15610b2d57610cc3565b82600f60008484815181101515610b4057fe5b90602001906020020151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610be96001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4090919063ffffffff16565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7f6001601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9190919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080600101915050610a6a565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f227687bda9848548d0e213bd3dcc76bc21295e33dff6849e2c2bd7c75cb77bf7846040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d63578082015181840152602081019050610d48565b505050509050019250505060405180910390a3505050565b6000600354905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000610dbd8461184e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e1c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9250610e2f565b610e2584611831565b905080600a540392505b5050919050565b6000600654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e9d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ed957600080fd5b60018210151515610ee957600080fd5b600b548211151515610efa57600080fd5b60006006541115610f2b57600654610f1d83600554611a9190919063ffffffff16565b11151515610f2a57600080fd5b5b610f4082600554611a9190919063ffffffff16565b600581905550610f5b82600c54611a9190919063ffffffff16565b600c81905550600090505b818110156110e357610f8360095442611a9190919063ffffffff16565b60106000610f9c84600c54611a4090919063ffffffff16565b81526020019081526020016000208190555082600f6000610fc884600c54611a4090919063ffffffff16565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006011600061102f84600c54611a4090919063ffffffff16565b81526020019081526020016000208190555061109382601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9190919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610f66565b61116d6111366110fe84600a54611a5990919063ffffffff16565b611128606461111a600854600754611a5990919063ffffffff16565b611aad90919063ffffffff16565b611a5990919063ffffffff16565b61115f61114e85600754611a5990919063ffffffff16565b600354611a9190919063ffffffff16565b611a9190919063ffffffff16565b6003819055507ff684d4510acd3fe860087ff339d3668df1f4b82d05e5b4cab07130929bfa835d8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b6000600d54905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561124857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806000806000855111151561130557600080fd5b600b5485511115151561131757600080fd5b611320336119f7565b85511115151561132f57600080fd5b600093506000925060009150600090505b845181101561174f573373ffffffffffffffffffffffffffffffffffffffff16600f6000878481518110151561137257fe5b90602001906020020151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806113f95750600a546011600087848151811015156113de57fe5b90602001906020020151815260200190815260200160002054145b1561140357611742565b61144260095460106000888581518110151561141b57fe5b90602001906020020151815260200190815260200160002054611a4090919063ffffffff16565b9350611495611486600d5460116000898681518110151561145f57fe5b90602001906020020151815260200190815260200160002054611a5990919063ffffffff16565b85611a9190919063ffffffff16565b92506010600086838151811015156114a957fe5b906020019060200201518152602001908152602001600020546114d7600d5485611a9190919063ffffffff16565b1015806114f757506114f4600d5484611a9190919063ffffffff16565b42105b1561150157611742565b611528600d5461151a8542611a4090919063ffffffff16565b611aad90919063ffffffff16565b9150600082141561153857611742565b6115758260116000888581518110151561154e57fe5b90602001906020020151815260200190815260200160002054611a9190919063ffffffff16565b60116000878481518110151561158757fe5b906020019060200201518152602001908152602001600020819055506115ff6115f96115ea6115c26002600454611a9190919063ffffffff16565b600a0a6115dc600854600754611a5990919063ffffffff16565b611aad90919063ffffffff16565b84611a5990919063ffffffff16565b33611ac3565b600a5460116000878481518110151561161457fe5b906020019060200201518152602001908152602001600020541415611741576000600f6000878481518110151561164757fe5b90602001906020020151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006010600087848151811015156116b157fe5b90602001906020020151815260200190815260200160002081905550601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061174061173a600454600a0a600754611aad90919063ffffffff16565b33611ac3565b5b5b8080600101915050611340565b3373ffffffffffffffffffffffffffffffffffffffff167f6842ed68604cbaecf495f440b5684cffd179b26f069e5205907f642a1bc91e4d866040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156117cb5780820151818401526020810190506117b0565b505050509050019250505060405180910390a25050505050565b6000600554905090565b600060106000838152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060116000838152602001908152602001600020549050919050565b6000600f600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b6000600c54905090565b6000600754905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561190457600080fd5b60008111151561191357600080fd5b80600b8190555050565b6000600454905090565b6000600a54905090565b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561198e57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119eb57600080fd5b6119f481611c87565b50565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000828211151515611a4e57fe5b818303905092915050565b600080831415611a6c5760009050611a8b565b8183029050818382811515611a7d57fe5b04141515611a8757fe5b8090505b92915050565b60008183019050828110151515611aa457fe5b80905092915050565b60008183811515611aba57fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b66578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611b60573d6000803e3d6000fd5b50611c68565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c2b57600080fd5b505af1158015611c3f573d6000803e3d6000fd5b505050506040513d6020811015611c5557600080fd5b8101908080519060200190929190505050505b611c7d82600354611a4090919063ffffffff16565b6003819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cc357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058203b4d2551e685258ff85f0032dbaa9ce2784f0770d2f4c74a6258bc64a288bc4e0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x0 PUSH1 0xD SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x20FD CODESIZE SUB DUP1 PUSH3 0x20FD DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE DUP2 ADD SWAP1 DUP1 DUP1 MLOAD DUP3 ADD SWAP3 SWAP2 SWAP1 PUSH1 0x20 ADD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP10 MLOAD GT ISZERO ISZERO PUSH3 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT ISZERO ISZERO PUSH3 0xF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT ISZERO ISZERO PUSH3 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP6 GT ISZERO ISZERO PUSH3 0x114 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT ISZERO ISZERO PUSH3 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP4 LT ISZERO ISZERO ISZERO PUSH3 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x14D SWAP3 SWAP2 SWAP1 PUSH3 0x291 JUMP JUMPDEST POP DUP8 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x6 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xB DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0xA DUP2 SWAP1 SSTORE POP DUP6 PUSH1 0x8 DUP2 SWAP1 SSTORE POP DUP5 PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH3 0x1A6 PUSH1 0xA SLOAD PUSH1 0x9 SLOAD PUSH3 0x27A PUSH5 0x100000000 MUL PUSH3 0x1AAD OR SWAP1 SWAP2 SWAP1 PUSH5 0x100000000 SWAP1 DIV JUMP JUMPDEST PUSH1 0xD DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH3 0x229 JUMPI DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH3 0x26B JUMP JUMPDEST DUP2 PUSH1 0xE PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST POP POP POP POP POP POP POP POP POP PUSH3 0x340 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH3 0x288 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP 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 0x2D4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x305 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x305 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x304 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x2E7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x314 SWAP2 SWAP1 PUSH3 0x318 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x33D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x339 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x31F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1DAD DUP1 PUSH3 0x350 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x16A JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xF0044BF EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x10FE9AE8 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x112F84E1 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x124B65B4 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x2B4E4E96 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x34CE998A EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0x3AF0CA19 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x43B07485 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0x554D578D EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0x66E3D5AC EQ PUSH2 0x461 JUMPI DUP1 PUSH4 0x70843AE9 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x7A36C307 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x7AAFDEEE EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0x7F1E7D41 EQ PUSH2 0x581 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5C2 JUMPI DUP1 PUSH4 0x95BE1F1A EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0xBB305EF2 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xCB57B0A5 EQ PUSH2 0x6C7 JUMPI DUP1 PUSH4 0xD087D288 EQ PUSH2 0x6F2 JUMPI DUP1 PUSH4 0xD561BF53 EQ PUSH2 0x71D JUMPI DUP1 PUSH4 0xD87F0AFC EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0xE0E09E0F EQ PUSH2 0x775 JUMPI DUP1 PUSH4 0xE5759436 EQ PUSH2 0x7A0 JUMPI DUP1 PUSH4 0xED88C68E EQ PUSH2 0x7CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF8B2CB4F EQ PUSH2 0x818 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x86F 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 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x8E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x90E 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 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x247 PUSH2 0x954 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 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x95E 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 0x2B2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x297 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2DF 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 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 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 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x388 PUSH2 0xD7B 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 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B3 PUSH2 0xD85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x401 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x420 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xDAF 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 0x442 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0xE36 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 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC 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 0xE40 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C3 PUSH2 0x11E3 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 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EE PUSH2 0x11ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x554 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x12EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x562 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x56B PUSH2 0x17E5 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 0x58D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x17EF 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 0x5CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D7 PUSH2 0x180C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1831 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 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x685 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x184E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6DC PUSH2 0x188B 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 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x707 PUSH2 0x1895 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 0x729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x732 PUSH2 0x189F 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 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x773 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x78A PUSH2 0x191D 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 0x7AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B5 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7D3 PUSH2 0x1931 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x816 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 0x1990 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x859 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 0x19F7 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 DUP1 PUSH1 0x0 PUSH2 0x89C PUSH1 0x9 SLOAD PUSH1 0x10 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH2 0x8D8 PUSH2 0x8C9 PUSH1 0xD SLOAD PUSH1 0x11 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x91B PUSH2 0x188B JUMP JUMPDEST SWAP2 POP PUSH2 0x925 PUSH2 0x189F JUMP JUMPDEST SWAP1 POP PUSH2 0x94D PUSH1 0x64 PUSH2 0x93F DUP5 DUP5 PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 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 0x9F6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9CB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9F6 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 0x9D9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0xA11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO ISZERO PUSH2 0xA4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA56 CALLER PUSH2 0x19F7 JUMP JUMPDEST DUP3 MLOAD GT ISZERO ISZERO ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xCD0 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xF PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0xB23 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x11 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB08 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0xB2D JUMPI PUSH2 0xCC3 JUMP JUMPDEST DUP3 PUSH1 0xF PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB40 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xBE9 PUSH1 0x1 PUSH1 0x12 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 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 0xC7F PUSH1 0x1 PUSH1 0x12 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 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 JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA6A JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x227687BDA9848548D0E213BD3DCC76BC21295E33DFF6849E2C2BD7C75CB77BF7 DUP5 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD63 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD48 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xDBD DUP5 PUSH2 0x184E JUMP JUMPDEST SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xE1C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 POP PUSH2 0xE2F JUMP JUMPDEST PUSH2 0xE25 DUP5 PUSH2 0x1831 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA SLOAD SUB SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0xE9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO ISZERO PUSH2 0xED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP3 LT ISZERO ISZERO ISZERO PUSH2 0xEE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP3 GT ISZERO ISZERO ISZERO PUSH2 0xEFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD GT ISZERO PUSH2 0xF2B JUMPI PUSH1 0x6 SLOAD PUSH2 0xF1D DUP4 PUSH1 0x5 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO ISZERO ISZERO PUSH2 0xF2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST JUMPDEST PUSH2 0xF40 DUP3 PUSH1 0x5 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE POP PUSH2 0xF5B DUP3 PUSH1 0xC SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xC DUP2 SWAP1 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x10E3 JUMPI PUSH2 0xF83 PUSH1 0x9 SLOAD TIMESTAMP PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x10 PUSH1 0x0 PUSH2 0xF9C DUP5 PUSH1 0xC SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0xF PUSH1 0x0 PUSH2 0xFC8 DUP5 PUSH1 0xC SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x102F DUP5 PUSH1 0xC SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1093 DUP3 PUSH1 0x12 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xF66 JUMP JUMPDEST PUSH2 0x116D PUSH2 0x1136 PUSH2 0x10FE DUP5 PUSH1 0xA SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1128 PUSH1 0x64 PUSH2 0x111A PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x115F PUSH2 0x114E DUP6 PUSH1 0x7 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH32 0xF684D4510ACD3FE860087FF339D3668DF1F4B82D05E5B4CAB07130929BFA835D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x1248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD GT ISZERO ISZERO PUSH2 0x1305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP6 MLOAD GT ISZERO ISZERO ISZERO PUSH2 0x1317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1320 CALLER PUSH2 0x19F7 JUMP JUMPDEST DUP6 MLOAD GT ISZERO ISZERO ISZERO PUSH2 0x132F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x174F JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xF PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1372 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x13F9 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x13DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0x1403 JUMPI PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x1442 PUSH1 0x9 SLOAD PUSH1 0x10 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x141B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP PUSH2 0x1495 PUSH2 0x1486 PUSH1 0xD SLOAD PUSH1 0x11 PUSH1 0x0 DUP10 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x145F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x10 PUSH1 0x0 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14A9 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x14D7 PUSH1 0xD SLOAD DUP6 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO DUP1 PUSH2 0x14F7 JUMPI POP PUSH2 0x14F4 PUSH1 0xD SLOAD DUP5 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST TIMESTAMP LT JUMPDEST ISZERO PUSH2 0x1501 JUMPI PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x1528 PUSH1 0xD SLOAD PUSH2 0x151A DUP6 TIMESTAMP PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x1538 JUMPI PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x1575 DUP3 PUSH1 0x11 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x154E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1587 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x15FF PUSH2 0x15F9 PUSH2 0x15EA PUSH2 0x15C2 PUSH1 0x2 PUSH1 0x4 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH2 0x15DC PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1614 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x1741 JUMPI PUSH1 0x0 PUSH1 0xF PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1647 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x16B1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x12 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 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP PUSH2 0x1740 PUSH2 0x173A PUSH1 0x4 SLOAD PUSH1 0xA EXP PUSH1 0x7 SLOAD PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x1AC3 JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1340 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6842ED68604CBAECF495F440B5684CFFD179B26F069E5205907F642A1BC91E4D DUP7 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17CB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17B0 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP4 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 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x1904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT ISZERO ISZERO PUSH2 0x1913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0xB DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F4 DUP2 PUSH2 0x1C87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 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 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0x1A4E JUMPI INVALID JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x1A6C JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x1A8B JUMP JUMPDEST DUP2 DUP4 MUL SWAP1 POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1A7D JUMPI INVALID JUMPDEST DIV EQ ISZERO ISZERO PUSH2 0x1A87 JUMPI INVALID JUMPDEST DUP1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x1AA4 JUMPI INVALID JUMPDEST DUP1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1ABA JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1B66 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1B60 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1C68 JUMP JUMPDEST PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP POP JUMPDEST PUSH2 0x1C7D DUP3 PUSH1 0x3 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO ISZERO PUSH2 0x1CC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 EXTCODESIZE 0x4d 0x25 MLOAD 0xe6 DUP6 0x25 DUP16 0xf8 0x5f STOP ORIGIN 0xdb 0xaa SWAP13 0xe2 PUSH25 0x4F0770D2F4C74A6258BC64A288BC4E00290000000000000000 ",
"sourceMap": "223:9998:0:-;;;595:1;579:17;;630:1;604:27;;842:830;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:830:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:10:5;591:5;;:18;;;;;;;;;;;;;;;;;;1098:1:0;1082:5;1076:19;:23;1068:32;;;;;;;;1126:1;1116:7;:11;1108:20;;;;;;;;1151:1;1144:4;:8;1136:17;;;;;;;;1177:1;1169:5;:9;1161:18;;;;;;;;1208:1;1195:10;:14;1187:23;;;;;;;;1244:1;1226:14;:19;;1218:28;;;;;;;;1263:5;1256:4;:12;;;;;;;;;;;;:::i;:::-;;1289:4;1278:8;:15;;;;1309:4;1303:3;:10;;;;1335;1323:9;:22;;;;1369:12;1355:11;:26;;;;1407:14;1391:13;:30;;;;1444:7;1431:10;:20;;;;1468:5;1461:4;:12;;;;1501:23;1510:13;;1501:4;;:8;;;;;;:23;;;;;:::i;:::-;1483:15;:41;;;;1564:1;1538:28;;:14;:28;;;1534:129;;;1592:14;1576:13;;:30;;;;;;;;;;;;;;;;;;1534:129;;;1648:14;1629:5;;:34;;;;;;;;;;;;;;;;;;1534:129;842:830;;;;;;;;;223:9998;;693:288:4;753:7;973:2;968;:7;;;;;;;;961:14;;693:288;;;;:::o;223:9998:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630f0044bf1461016f57806310fe9ae8146101b0578063112f84e114610207578063124b65b41461023257806317d7de7c1461025d5780632b4e4e96146102ed57806334ce998a146103735780633af0ca191461039e57806343b07485146103f5578063554d578d1461043657806366e3d5ac1461046157806370843ae9146104ae578063715018a6146104d95780637a36c307146104f05780637aafdeee146105565780637f1e7d41146105815780638da5cb5b146105c257806395be1f1a14610619578063bb305ef21461065a578063cb57b0a5146106c7578063d087d288146106f2578063d561bf531461071d578063d87f0afc14610748578063e0e09e0f14610775578063e5759436146107a0578063ed88c68e146107cb578063f2fde38b146107d5578063f8b2cb4f14610818575b600080fd5b34801561017b57600080fd5b5061019a6004803603810190808035906020019092919050505061086f565b6040518082815260200191505060405180910390f35b3480156101bc57600080fd5b506101c56108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021357600080fd5b5061021c61090e565b6040518082815260200191505060405180910390f35b34801561023e57600080fd5b50610247610954565b6040518082815260200191505060405180910390f35b34801561026957600080fd5b5061027261095e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b2578082015181840152602081019050610297565b50505050905090810190601f1680156102df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f957600080fd5b50610371600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610a00565b005b34801561037f57600080fd5b50610388610d7b565b6040518082815260200191505060405180910390f35b3480156103aa57600080fd5b506103b3610d85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040157600080fd5b5061042060048036038101908080359060200190929190505050610daf565b6040518082815260200191505060405180910390f35b34801561044257600080fd5b5061044b610e36565b6040518082815260200191505060405180910390f35b34801561046d57600080fd5b506104ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e40565b005b3480156104ba57600080fd5b506104c36111e3565b6040518082815260200191505060405180910390f35b3480156104e557600080fd5b506104ee6111ed565b005b3480156104fc57600080fd5b50610554600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506112ef565b005b34801561056257600080fd5b5061056b6117e5565b6040518082815260200191505060405180910390f35b34801561058d57600080fd5b506105ac600480360381019080803590602001909291905050506117ef565b6040518082815260200191505060405180910390f35b3480156105ce57600080fd5b506105d761180c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561062557600080fd5b5061064460048036038101908080359060200190929190505050611831565b6040518082815260200191505060405180910390f35b34801561066657600080fd5b506106856004803603810190808035906020019092919050505061184e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d357600080fd5b506106dc61188b565b6040518082815260200191505060405180910390f35b3480156106fe57600080fd5b50610707611895565b6040518082815260200191505060405180910390f35b34801561072957600080fd5b5061073261189f565b6040518082815260200191505060405180910390f35b34801561075457600080fd5b50610773600480360381019080803590602001909291905050506118a9565b005b34801561078157600080fd5b5061078a61191d565b6040518082815260200191505060405180910390f35b3480156107ac57600080fd5b506107b5611927565b6040518082815260200191505060405180910390f35b6107d3611931565b005b3480156107e157600080fd5b50610816600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611990565b005b34801561082457600080fd5b50610859600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119f7565b6040518082815260200191505060405180910390f35b600080600061089c6009546010600087815260200190815260200160002054611a4090919063ffffffff16565b91506108d86108c9600d546011600088815260200190815260200160002054611a5990919063ffffffff16565b83611a9190919063ffffffff16565b90508092505050919050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061091b61188b565b915061092561189f565b905061094d606461093f8484611a5990919063ffffffff16565b611aad90919063ffffffff16565b9250505090565b6000600954905090565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000808251111515610a1157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a4d57600080fd5b610a56336119f7565b825111151515610a6557600080fd5b600090505b8151811015610cd0573373ffffffffffffffffffffffffffffffffffffffff16600f60008484815181101515610a9c57fe5b90602001906020020151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580610b235750600a54601160008484815181101515610b0857fe5b90602001906020020151815260200190815260200160002054145b15610b2d57610cc3565b82600f60008484815181101515610b4057fe5b90602001906020020151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610be96001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4090919063ffffffff16565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7f6001601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9190919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080600101915050610a6a565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f227687bda9848548d0e213bd3dcc76bc21295e33dff6849e2c2bd7c75cb77bf7846040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d63578082015181840152602081019050610d48565b505050509050019250505060405180910390a3505050565b6000600354905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000610dbd8461184e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e1c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9250610e2f565b610e2584611831565b905080600a540392505b5050919050565b6000600654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e9d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ed957600080fd5b60018210151515610ee957600080fd5b600b548211151515610efa57600080fd5b60006006541115610f2b57600654610f1d83600554611a9190919063ffffffff16565b11151515610f2a57600080fd5b5b610f4082600554611a9190919063ffffffff16565b600581905550610f5b82600c54611a9190919063ffffffff16565b600c81905550600090505b818110156110e357610f8360095442611a9190919063ffffffff16565b60106000610f9c84600c54611a4090919063ffffffff16565b81526020019081526020016000208190555082600f6000610fc884600c54611a4090919063ffffffff16565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006011600061102f84600c54611a4090919063ffffffff16565b81526020019081526020016000208190555061109382601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9190919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610f66565b61116d6111366110fe84600a54611a5990919063ffffffff16565b611128606461111a600854600754611a5990919063ffffffff16565b611aad90919063ffffffff16565b611a5990919063ffffffff16565b61115f61114e85600754611a5990919063ffffffff16565b600354611a9190919063ffffffff16565b611a9190919063ffffffff16565b6003819055507ff684d4510acd3fe860087ff339d3668df1f4b82d05e5b4cab07130929bfa835d8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b6000600d54905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561124857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806000806000855111151561130557600080fd5b600b5485511115151561131757600080fd5b611320336119f7565b85511115151561132f57600080fd5b600093506000925060009150600090505b845181101561174f573373ffffffffffffffffffffffffffffffffffffffff16600f6000878481518110151561137257fe5b90602001906020020151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806113f95750600a546011600087848151811015156113de57fe5b90602001906020020151815260200190815260200160002054145b1561140357611742565b61144260095460106000888581518110151561141b57fe5b90602001906020020151815260200190815260200160002054611a4090919063ffffffff16565b9350611495611486600d5460116000898681518110151561145f57fe5b90602001906020020151815260200190815260200160002054611a5990919063ffffffff16565b85611a9190919063ffffffff16565b92506010600086838151811015156114a957fe5b906020019060200201518152602001908152602001600020546114d7600d5485611a9190919063ffffffff16565b1015806114f757506114f4600d5484611a9190919063ffffffff16565b42105b1561150157611742565b611528600d5461151a8542611a4090919063ffffffff16565b611aad90919063ffffffff16565b9150600082141561153857611742565b6115758260116000888581518110151561154e57fe5b90602001906020020151815260200190815260200160002054611a9190919063ffffffff16565b60116000878481518110151561158757fe5b906020019060200201518152602001908152602001600020819055506115ff6115f96115ea6115c26002600454611a9190919063ffffffff16565b600a0a6115dc600854600754611a5990919063ffffffff16565b611aad90919063ffffffff16565b84611a5990919063ffffffff16565b33611ac3565b600a5460116000878481518110151561161457fe5b906020019060200201518152602001908152602001600020541415611741576000600f6000878481518110151561164757fe5b90602001906020020151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006010600087848151811015156116b157fe5b90602001906020020151815260200190815260200160002081905550601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061174061173a600454600a0a600754611aad90919063ffffffff16565b33611ac3565b5b5b8080600101915050611340565b3373ffffffffffffffffffffffffffffffffffffffff167f6842ed68604cbaecf495f440b5684cffd179b26f069e5205907f642a1bc91e4d866040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156117cb5780820151818401526020810190506117b0565b505050509050019250505060405180910390a25050505050565b6000600554905090565b600060106000838152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060116000838152602001908152602001600020549050919050565b6000600f600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b6000600c54905090565b6000600754905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561190457600080fd5b60008111151561191357600080fd5b80600b8190555050565b6000600454905090565b6000600a54905090565b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561198e57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119eb57600080fd5b6119f481611c87565b50565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000828211151515611a4e57fe5b818303905092915050565b600080831415611a6c5760009050611a8b565b8183029050818382811515611a7d57fe5b04141515611a8757fe5b8090505b92915050565b60008183019050828110151515611aa457fe5b80905092915050565b60008183811515611aba57fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b66578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611b60573d6000803e3d6000fd5b50611c68565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c2b57600080fd5b505af1158015611c3f573d6000803e3d6000fd5b505050506040513d6020811015611c5557600080fd5b8101908080519060200190929190505050505b611c7d82600354611a4090919063ffffffff16565b6003819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cc357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058203b4d2551e685258ff85f0032dbaa9ce2784f0770d2f4c74a6258bc64a288bc4e0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x16A JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xF0044BF EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x10FE9AE8 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x112F84E1 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x124B65B4 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x2B4E4E96 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x34CE998A EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0x3AF0CA19 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x43B07485 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0x554D578D EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0x66E3D5AC EQ PUSH2 0x461 JUMPI DUP1 PUSH4 0x70843AE9 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x7A36C307 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x7AAFDEEE EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0x7F1E7D41 EQ PUSH2 0x581 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5C2 JUMPI DUP1 PUSH4 0x95BE1F1A EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0xBB305EF2 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xCB57B0A5 EQ PUSH2 0x6C7 JUMPI DUP1 PUSH4 0xD087D288 EQ PUSH2 0x6F2 JUMPI DUP1 PUSH4 0xD561BF53 EQ PUSH2 0x71D JUMPI DUP1 PUSH4 0xD87F0AFC EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0xE0E09E0F EQ PUSH2 0x775 JUMPI DUP1 PUSH4 0xE5759436 EQ PUSH2 0x7A0 JUMPI DUP1 PUSH4 0xED88C68E EQ PUSH2 0x7CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF8B2CB4F EQ PUSH2 0x818 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x86F 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 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x8E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x90E 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 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x247 PUSH2 0x954 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 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x95E 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 0x2B2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x297 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2DF 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 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 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 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x388 PUSH2 0xD7B 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 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B3 PUSH2 0xD85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x401 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x420 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xDAF 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 0x442 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0xE36 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 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC 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 0xE40 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C3 PUSH2 0x11E3 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 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EE PUSH2 0x11ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x554 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x12EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x562 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x56B PUSH2 0x17E5 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 0x58D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x17EF 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 0x5CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D7 PUSH2 0x180C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1831 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 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x685 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x184E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6DC PUSH2 0x188B 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 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x707 PUSH2 0x1895 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 0x729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x732 PUSH2 0x189F 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 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x773 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x78A PUSH2 0x191D 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 0x7AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B5 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7D3 PUSH2 0x1931 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x816 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 0x1990 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x859 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 0x19F7 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 DUP1 PUSH1 0x0 PUSH2 0x89C PUSH1 0x9 SLOAD PUSH1 0x10 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH2 0x8D8 PUSH2 0x8C9 PUSH1 0xD SLOAD PUSH1 0x11 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x91B PUSH2 0x188B JUMP JUMPDEST SWAP2 POP PUSH2 0x925 PUSH2 0x189F JUMP JUMPDEST SWAP1 POP PUSH2 0x94D PUSH1 0x64 PUSH2 0x93F DUP5 DUP5 PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 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 0x9F6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9CB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9F6 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 0x9D9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0xA11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO ISZERO PUSH2 0xA4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA56 CALLER PUSH2 0x19F7 JUMP JUMPDEST DUP3 MLOAD GT ISZERO ISZERO ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xCD0 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xF PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0xB23 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x11 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB08 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0xB2D JUMPI PUSH2 0xCC3 JUMP JUMPDEST DUP3 PUSH1 0xF PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB40 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xBE9 PUSH1 0x1 PUSH1 0x12 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 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 0xC7F PUSH1 0x1 PUSH1 0x12 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 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 JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA6A JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x227687BDA9848548D0E213BD3DCC76BC21295E33DFF6849E2C2BD7C75CB77BF7 DUP5 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD63 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD48 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xDBD DUP5 PUSH2 0x184E JUMP JUMPDEST SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xE1C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 POP PUSH2 0xE2F JUMP JUMPDEST PUSH2 0xE25 DUP5 PUSH2 0x1831 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA SLOAD SUB SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0xE9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO ISZERO PUSH2 0xED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP3 LT ISZERO ISZERO ISZERO PUSH2 0xEE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP3 GT ISZERO ISZERO ISZERO PUSH2 0xEFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD GT ISZERO PUSH2 0xF2B JUMPI PUSH1 0x6 SLOAD PUSH2 0xF1D DUP4 PUSH1 0x5 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO ISZERO ISZERO PUSH2 0xF2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST JUMPDEST PUSH2 0xF40 DUP3 PUSH1 0x5 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE POP PUSH2 0xF5B DUP3 PUSH1 0xC SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xC DUP2 SWAP1 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x10E3 JUMPI PUSH2 0xF83 PUSH1 0x9 SLOAD TIMESTAMP PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x10 PUSH1 0x0 PUSH2 0xF9C DUP5 PUSH1 0xC SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0xF PUSH1 0x0 PUSH2 0xFC8 DUP5 PUSH1 0xC SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x102F DUP5 PUSH1 0xC SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1093 DUP3 PUSH1 0x12 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xF66 JUMP JUMPDEST PUSH2 0x116D PUSH2 0x1136 PUSH2 0x10FE DUP5 PUSH1 0xA SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1128 PUSH1 0x64 PUSH2 0x111A PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x115F PUSH2 0x114E DUP6 PUSH1 0x7 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH32 0xF684D4510ACD3FE860087FF339D3668DF1F4B82D05E5B4CAB07130929BFA835D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x1248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD GT ISZERO ISZERO PUSH2 0x1305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP6 MLOAD GT ISZERO ISZERO ISZERO PUSH2 0x1317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1320 CALLER PUSH2 0x19F7 JUMP JUMPDEST DUP6 MLOAD GT ISZERO ISZERO ISZERO PUSH2 0x132F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x174F JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xF PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1372 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x13F9 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x13DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0x1403 JUMPI PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x1442 PUSH1 0x9 SLOAD PUSH1 0x10 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x141B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP PUSH2 0x1495 PUSH2 0x1486 PUSH1 0xD SLOAD PUSH1 0x11 PUSH1 0x0 DUP10 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x145F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x10 PUSH1 0x0 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14A9 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x14D7 PUSH1 0xD SLOAD DUP6 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO DUP1 PUSH2 0x14F7 JUMPI POP PUSH2 0x14F4 PUSH1 0xD SLOAD DUP5 PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST TIMESTAMP LT JUMPDEST ISZERO PUSH2 0x1501 JUMPI PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x1528 PUSH1 0xD SLOAD PUSH2 0x151A DUP6 TIMESTAMP PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x1538 JUMPI PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x1575 DUP3 PUSH1 0x11 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x154E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1587 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x15FF PUSH2 0x15F9 PUSH2 0x15EA PUSH2 0x15C2 PUSH1 0x2 PUSH1 0x4 SLOAD PUSH2 0x1A91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH2 0x15DC PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0x1A59 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1614 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x1741 JUMPI PUSH1 0x0 PUSH1 0xF PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1647 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x16B1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x12 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 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP PUSH2 0x1740 PUSH2 0x173A PUSH1 0x4 SLOAD PUSH1 0xA EXP PUSH1 0x7 SLOAD PUSH2 0x1AAD SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x1AC3 JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1340 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6842ED68604CBAECF495F440B5684CFFD179B26F069E5205907F642A1BC91E4D DUP7 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17CB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17B0 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP4 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 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x1904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT ISZERO ISZERO PUSH2 0x1913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0xB DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F4 DUP2 PUSH2 0x1C87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 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 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0x1A4E JUMPI INVALID JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x1A6C JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x1A8B JUMP JUMPDEST DUP2 DUP4 MUL SWAP1 POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1A7D JUMPI INVALID JUMPDEST DIV EQ ISZERO ISZERO PUSH2 0x1A87 JUMPI INVALID JUMPDEST DUP1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x1AA4 JUMPI INVALID JUMPDEST DUP1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1ABA JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1B66 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1B60 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1C68 JUMP JUMPDEST PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP POP JUMPDEST PUSH2 0x1C7D DUP3 PUSH1 0x3 SLOAD PUSH2 0x1A40 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO ISZERO PUSH2 0x1CC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 EXTCODESIZE 0x4d 0x25 MLOAD 0xe6 DUP6 0x25 DUP16 0xf8 0x5f STOP ORIGIN 0xdb 0xaa SWAP13 0xe2 PUSH25 0x4F0770D2F4C74A6258BC64A288BC4E00290000000000000000 ",
"sourceMap": "223:9998:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5503:8;;;6125:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6125:275:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7365:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8114:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8114:184:0;;;;;;;;;;;;;;;;;;;;;;;7732:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7732:79:0;;;;;;;;;;;;;;;;;;;;;;;9461:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9461:78: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;9461:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:603;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4708:603:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9602:89:0;;;;;;;;;;;;;;;;;;;;;;;9288:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9288:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6751:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6751:271:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8674:77:0;;;;;;;;;;;;;;;;;;;;;;;2112:852;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:852:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10115:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10115:101:0;;;;;;;;;;;;;;;;;;;;;;;1042:114:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1042:114:5;;;;;;3123:1398:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3123:1398:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9763:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9763:92:0;;;;;;;;;;;;;;;;;;;;;;;7929:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7929:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;7153:119:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7153:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6509:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6509:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8357:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8357:91:0;;;;;;;;;;;;;;;;;;;;;;;9911:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9911:81:0;;;;;;;;;;;;;;;;;;;;;;;8517:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8517:87:0;;;;;;;;;;;;;;;;;;;;;;;1821:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1821:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;9110:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9110:93:0;;;;;;;;;;;;;;;;;;;;;;;7552:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7552:97:0;;;;;;;;;;;;;;;;;;;;;;;5379:89;;;;;;1324:105:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1324:105:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;8866::0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8866:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6125:275;6189:7;6208:17;6264:29;6228:26;6249:4;;6228:10;:16;6239:4;6228:16;;;;;;;;;;;;:20;;:26;;;;:::i;:::-;6208:46;;6296:57;6310:42;6336:15;;6310;:21;6326:4;6310:21;;;;;;;;;;;;:25;;:42;;;;:::i;:::-;6296:9;:13;;:57;;;;:::i;:::-;6264:89;;6370:21;6363:28;;6125:275;;;;;:::o;7365:99::-;7413:7;7448:5;;;;;;;;;;;7432:23;;7365:99;:::o;8114:184::-;8164:7;8183:12;8223:11;8198:15;:13;:15::i;:::-;8183:30;;8237:13;:11;:13::i;:::-;8223:27;;8267:22;8285:3;8267:13;8275:4;8267:3;:7;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;8260:29;;8114:184;;;:::o;7732:79::-;7772:7;7798:4;;7791:11;;7732:79;:::o;9461:78::-;9501:6;9526:4;9519:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9461:78;:::o;4708:603::-;4915:9;4803:1;4787:6;:13;:17;4779:26;;;;;;;;4841:1;4821:22;;:8;:22;;;;4813:31;;;;;;;;4877:22;4888:10;4877;:22::i;:::-;4860:6;:13;:39;;4852:48;;;;;;;;4927:1;4915:13;;4910:337;4934:6;:13;4930:1;:17;4910:337;;;4990:10;4970:30;;:5;:16;4976:6;4983:1;4976:9;;;;;;;;;;;;;;;;;;4970:16;;;;;;;;;;;;;;;;;;;;;:30;;;;:89;;;;5046:13;;5016:15;:26;5032:6;5039:1;5032:9;;;;;;;;;;;;;;;;;;5016:26;;;;;;;;;;;;:43;4970:89;4966:103;;;5061:8;;4966:103;5100:8;5081:5;:16;5087:6;5094:1;5087:9;;;;;;;;;;;;;;;;;;5081:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;5144:30;5172:1;5144:11;:23;5156:10;5144:23;;;;;;;;;;;;;;;;:27;;:30;;;;:::i;:::-;5118:11;:23;5130:10;5118:23;;;;;;;;;;;;;;;:56;;;;5208:28;5234:1;5208:11;:21;5220:8;5208:21;;;;;;;;;;;;;;;;:25;;:28;;;;:::i;:::-;5184:11;:21;5196:8;5184:21;;;;;;;;;;;;;;;:52;;;;4910:337;4949:3;;;;;;;4910:337;;;5285:8;5261:41;;5273:10;5261:41;;;5295:6;5261:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5261:41:0;;;;;;;;;;;;;;;;;4708:603;;;:::o;9602:89::-;9647:7;9673:9;;9666:16;;9602:89;:::o;9288:97::-;9337:7;9363:13;;;;;;;;;;;9356:20;;9288:97;:::o;6751:271::-;6815:6;6833:13;6921:16;6849:18;6862:4;6849:12;:18::i;:::-;6833:34;;6898:1;6881:19;;:5;:19;;;6877:34;;;6909:2;6902:9;;;;6877:34;6940:24;6959:4;6940:18;:24::i;:::-;6921:43;;7004:8;6988:13;;:24;6974:39;;6751:271;;;;;;:::o;8674:77::-;8713:7;8739:3;;8732:10;;8674:77;:::o;2112:852::-;2483:9;750:5:5;;;;;;;;;;;736:19;;:10;:19;;;728:28;;;;;;;;2219:1:0;2202:19;;:5;:19;;;;2194:28;;;;;;;;2254:1;2238:12;:17;;2230:26;;;;;;;;2288:9;;2272:12;:25;;2264:34;;;;;;;;2318:1;2312:3;;:7;2308:66;;;2370:3;;2337:29;2353:12;2337:11;;:15;;:29;;;;:::i;:::-;:36;;2329:45;;;;;;;;2308:66;2398:29;2414:12;2398:11;;:15;;:29;;;;:::i;:::-;2384:11;:43;;;;2445:23;2455:12;2445:5;;:9;;:23;;;;:::i;:::-;2437:5;:31;;;;2495:1;2483:13;;2478:253;2502:12;2498:1;:16;2478:253;;;2560:13;2568:4;;2560:3;:7;;:13;;;;:::i;:::-;2533:10;:24;2544:12;2554:1;2544:5;;:9;;:12;;;;:::i;:::-;2533:24;;;;;;;;;;;:40;;;;2605:5;2583;:19;2589:12;2599:1;2589:5;;:9;;:12;;;;:::i;:::-;2583:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2652:1;2620:15;:29;2636:12;2646:1;2636:5;;:9;;:12;;;;:::i;:::-;2620:29;;;;;;;;;;;:33;;;;2684:36;2707:12;2684:11;:18;2696:5;2684:18;;;;;;;;;;;;;;;;:22;;:36;;;;:::i;:::-;2663:11;:18;2675:5;2663:18;;;;;;;;;;;;;;;:57;;;;2516:3;;;;;;;2478:253;;;2752:157;2817:91;2876:31;2894:12;2876:13;;:17;;:31;;;;:::i;:::-;2818:52;2866:3;2818:24;2831:10;;2818:8;;:12;;:24;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;2817:58;;:91;;;;:::i;:::-;2752:41;2766:26;2779:12;2766:8;;:12;;:26;;;;:::i;:::-;2752:9;;:13;;:41;;;;:::i;:::-;:64;;:157;;;;:::i;:::-;2740:9;:169;;;;2924:31;2935:5;2942:12;2924:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;2112:852;;;:::o;10115:101::-;10166:7;10192:15;;10185:22;;10115:101;:::o;1042:114:5:-;750:5;;;;;;;;;;;736:19;;:10;:19;;;728:28;;;;;;;;1119:5;;;;;;;;;;;1100:25;;;;;;;;;;;;1148:1;1132:5;;:18;;;;;;;;;;;;;;;;;;1042:114::o;3123:1398:0:-;3316:17;3345:29;3386:16;3421:9;3205:1;3189:6;:13;:17;3181:26;;;;;;;;3240:9;;3223:6;:13;:26;;3215:35;;;;;;;;3283:22;3294:10;3283;:22::i;:::-;3266:6;:13;:39;;3258:48;;;;;;;;3336:1;3316:21;;3377:1;3345:33;;3405:1;3386:20;;3433:1;3421:13;;3416:1047;3440:6;:13;3436:1;:17;3416:1047;;;3496:10;3476:30;;:5;:16;3482:6;3489:1;3482:9;;;;;;;;;;;;;;;;;;3476:16;;;;;;;;;;;;;;;;;;;;;:30;;;;:89;;;;3552:13;;3522:15;:26;3538:6;3545:1;3538:9;;;;;;;;;;;;;;;;;;3522:26;;;;;;;;;;;;:43;3476:89;3472:103;;;3567:8;;3472:103;3599:31;3625:4;;3599:10;:21;3610:6;3617:1;3610:9;;;;;;;;;;;;;;;;;;3599:21;;;;;;;;;;;;:25;;:31;;;;:::i;:::-;3587:43;;3666:62;3680:47;3711:15;;3680;:26;3696:6;3703:1;3696:9;;;;;;;;;;;;;;;;;;3680:26;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;3666:9;:13;;:62;;;;:::i;:::-;3642:86;;3790:10;:21;3801:6;3808:1;3801:9;;;;;;;;;;;;;;;;;;3790:21;;;;;;;;;;;;3744:42;3770:15;;3744:21;:25;;:42;;;;:::i;:::-;:67;;:131;;;;3833:42;3859:15;;3833:21;:25;;:42;;;;:::i;:::-;3827:3;:48;3744:131;3740:145;;;3877:8;;3740:145;3908:53;3945:15;;3909:30;3917:21;3909:3;:7;;:30;;;;:::i;:::-;3908:36;;:53;;;;:::i;:::-;3897:64;;3989:1;3977:8;:13;3973:27;;;3992:8;;3973:27;4041:40;4072:8;4041:15;:26;4057:6;4064:1;4057:9;;;;;;;;;;;;;;;;;;4041:26;;;;;;;;;;;;:30;;:40;;;;:::i;:::-;4012:15;:26;4028:6;4035:1;4028:9;;;;;;;;;;;;;;;;;;4012:26;;;;;;;;;;;:69;;;;4093:97;4103:73;4116:58;4153:18;4169:1;4153:11;;:15;;:18;;;;:::i;:::-;4146:2;:26;4116:24;4129:10;;4116:8;;:12;;:24;;;;:::i;:::-;:28;;:58;;;;:::i;:::-;4103:8;:12;;:73;;;;:::i;:::-;4178:10;4093:8;:97::i;:::-;4236:13;;4206:15;:26;4222:6;4229:1;4222:9;;;;;;;;;;;;;;;;;;4206:26;;;;;;;;;;;;:43;4202:251;;;4292:1;4265:5;:16;4271:6;4278:1;4271:9;;;;;;;;;;;;;;;;;;4265:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4330:1;4306:10;:21;4317:6;4324:1;4317:9;;;;;;;;;;;;;;;;;;4306:21;;;;;;;;;;;:25;;;;4343:11;:23;4355:10;4343:23;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;4382:58;4391:35;4412:11;;4406:2;:17;4391:8;;:12;;:35;;;;:::i;:::-;4428:10;4382:8;:58::i;:::-;4202:251;3416:1047;3455:3;;;;;;;3416:1047;;;4493:10;4477:35;;;4505:6;4477:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4477:35:0;;;;;;;;;;;;;;;;;3123:1398;;;;;:::o;9763:92::-;9809:7;9835:11;;9828:18;;9763:92;:::o;7929:107::-;7985:7;8011:10;:16;8022:4;8011:16;;;;;;;;;;;;8004:23;;7929:107;;;:::o;247:20:5:-;;;;;;;;;;;;;:::o;7153:119:0:-;7216:7;7242:15;:21;7258:4;7242:21;;;;;;;;;;;;7235:28;;7153:119;;;:::o;6509:103::-;6566:7;6592:5;:11;6598:4;6592:11;;;;;;;;;;;;;;;;;;;;;6585:18;;6509:103;;;:::o;8357:91::-;8403:7;8429:10;;8422:17;;8357:91;:::o;9911:81::-;9952:7;9978:5;;9971:12;;9911:81;:::o;8517:87::-;8561:7;8587:8;;8580:15;;8517:87;:::o;1821:136::-;750:5:5;;;;;;;;;;;736:19;;:10;:19;;;728:28;;;;;;;;1914:1:0;1901:10;:14;1893:23;;;;;;;;1938:10;1926:9;:22;;;;1821:136;:::o;9110:93::-;9157:7;9183:11;;9176:18;;9110:93;:::o;7552:97::-;7601:7;7627:13;;7620:20;;7552:97;:::o;5379:89::-;5456:1;5430:28;;5438:5;;;;;;;;;;;5430:28;;;5422:37;;;;;;;;5379:89::o;1324:105:5:-;750:5;;;;;;;;;;;736:19;;:10;:19;;;728:28;;;;;;;;1394:29;1413:9;1394:18;:29::i;:::-;1324:105;:::o;8866::0:-;8920:7;8946:11;:16;8958:3;8946:16;;;;;;;;;;;;;;;;8939:23;;8866:105;;;:::o;1098:119:4:-;1158:7;1187:2;1181;:8;;1174:16;;;;;;1209:2;1204;:7;1197:14;;1098:119;;;;:::o;215:391::-;275:9;511:1;505:2;:7;501:38;;;530:1;523:8;;;;501:38;556:2;551;:7;547:11;;582:2;576;572:1;:6;;;;;;;;:12;565:20;;;;;;599:1;592:8;;215:391;;;;;:::o;1284:132::-;1344:9;1371:2;1366;:7;1362:11;;1392:2;1387:1;:7;;1380:15;;;;;;1409:1;1402:8;;1284:132;;;;:::o;693:288::-;753:7;973:2;968;:7;;;;;;;;961:14;;693:288;;;;:::o;5725:246:0:-;5825:1;5799:28;;5807:5;;;;;;;;;;;5799:28;;;5795:124;;;5837:8;:17;;:25;5855:6;5837:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5837:25:0;5795:124;;;5885:5;;;;;;;;;;;:14;;;5900:10;5912:6;5885:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5885:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5885:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5885:34:0;;;;;;;;;;;;;;;;;5795:124;5941:21;5955:6;5941:9;;:13;;:21;;;;:::i;:::-;5929:9;:33;;;;5725:246;;:::o;1570:175:5:-;1662:1;1641:23;;:9;:23;;;;1633:32;;;;;;;;1705:9;1677:38;;1698:5;;;;;;;;;;;1677:38;;;;;;;;;;;;1730:9;1722:5;;:17;;;;;;;;;;;;;;;;;;1570:175;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1519400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "685",
"changeLoopLimit(uint256)": "20994",
"donate()": "936",
"getBalance(address)": "1153",
"getBondOwner(uint256)": "985",
"getCap()": "600",
"getCouponRate()": "820",
"getCouponThreshold()": "644",
"getCouponsRedeemed(uint256)": "915",
"getLastTimeRedeemed(uint256)": "infinite",
"getMaturity(uint256)": "871",
"getName()": "infinite",
"getNonce()": "842",
"getParDecimals()": "908",
"getParValue()": "864",
"getRemainingCoupons(uint256)": "1388",
"getSimpleInterest()": "infinite",
"getTerm()": "468",
"getTimesToRedeem()": "930",
"getTokenAddress()": "472",
"getTokenToRedeem()": "604",
"getTotalBonds()": "710",
"getTotalDebt()": "534",
"mintBond(address,uint256)": "infinite",
"owner()": "794",
"redeemCoupons(uint256[])": "infinite",
"renounceOwnership()": "22337",
"transfer(address,uint256[])": "infinite",
"transferOwnership(address)": "23166"
},
"internal": {
"getMoney(uint256,address)": "infinite"
}
},
"methodIdentifiers": {
"changeLoopLimit(uint256)": "d87f0afc",
"donate()": "ed88c68e",
"getBalance(address)": "f8b2cb4f",
"getBondOwner(uint256)": "bb305ef2",
"getCap()": "554d578d",
"getCouponRate()": "cb57b0a5",
"getCouponThreshold()": "70843ae9",
"getCouponsRedeemed(uint256)": "95be1f1a",
"getLastTimeRedeemed(uint256)": "0f0044bf",
"getMaturity(uint256)": "7f1e7d41",
"getName()": "17d7de7c",
"getNonce()": "d087d288",
"getParDecimals()": "e0e09e0f",
"getParValue()": "d561bf53",
"getRemainingCoupons(uint256)": "43b07485",
"getSimpleInterest()": "112f84e1",
"getTerm()": "124b65b4",
"getTimesToRedeem()": "e5759436",
"getTokenAddress()": "10fe9ae8",
"getTokenToRedeem()": "3af0ca19",
"getTotalBonds()": "7aafdeee",
"getTotalDebt()": "34ce998a",
"mintBond(address,uint256)": "66e3d5ac",
"owner()": "8da5cb5b",
"redeemCoupons(uint256[])": "7a36c307",
"renounceOwnership()": "715018a6",
"transfer(address,uint256[])": "2b4e4e96",
"transferOwnership(address)": "f2fde38b"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getLastTimeRedeemed",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTokenAddress",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getSimpleInterest",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTerm",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getName",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "receiver",
"type": "address"
},
{
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "transfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTotalDebt",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTokenToRedeem",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getRemainingCoupons",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCap",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "buyer",
"type": "address"
},
{
"name": "_bondsAmount",
"type": "uint256"
}
],
"name": "mintBond",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCouponThreshold",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "redeemCoupons",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTotalBonds",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getMaturity",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getCouponsRedeemed",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getBondOwner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCouponRate",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getNonce",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getParValue",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_loopLimit",
"type": "uint256"
}
],
"name": "changeLoopLimit",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getParDecimals",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTimesToRedeem",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "donate",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "who",
"type": "address"
}
],
"name": "getBalance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_name",
"type": "string"
},
{
"name": "_par",
"type": "uint256"
},
{
"name": "_parDecimals",
"type": "uint256"
},
{
"name": "_coupon",
"type": "uint256"
},
{
"name": "_term",
"type": "uint256"
},
{
"name": "_cap",
"type": "uint256"
},
{
"name": "_timesToRedeem",
"type": "uint256"
},
{
"name": "_tokenToRedeem",
"type": "address"
},
{
"name": "_loopLimit",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"name": "bondsAmount",
"type": "uint256"
}
],
"name": "MintedBond",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "caller",
"type": "address"
},
{
"indexed": false,
"name": "bonds",
"type": "uint256[]"
}
],
"name": "RedeemedCoupons",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "caller",
"type": "address"
},
{
"indexed": false,
"name": "amountClaimed",
"type": "uint256"
}
],
"name": "ClaimedPar",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "bonds",
"type": "uint256[]"
}
],
"name": "Transferred",
"type": "event"
}
]
}
{
"compiler": {
"version": "0.4.24+commit.e67f0147"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getLastTimeRedeemed",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTokenAddress",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getSimpleInterest",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTerm",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getName",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "receiver",
"type": "address"
},
{
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "transfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTotalDebt",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTokenToRedeem",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getRemainingCoupons",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCap",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "buyer",
"type": "address"
},
{
"name": "_bondsAmount",
"type": "uint256"
}
],
"name": "mintBond",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCouponThreshold",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "redeemCoupons",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTotalBonds",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getMaturity",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getCouponsRedeemed",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "bond",
"type": "uint256"
}
],
"name": "getBondOwner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCouponRate",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getNonce",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getParValue",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_loopLimit",
"type": "uint256"
}
],
"name": "changeLoopLimit",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getParDecimals",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getTimesToRedeem",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "donate",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "who",
"type": "address"
}
],
"name": "getBalance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_name",
"type": "string"
},
{
"name": "_par",
"type": "uint256"
},
{
"name": "_parDecimals",
"type": "uint256"
},
{
"name": "_coupon",
"type": "uint256"
},
{
"name": "_term",
"type": "uint256"
},
{
"name": "_cap",
"type": "uint256"
},
{
"name": "_timesToRedeem",
"type": "uint256"
},
{
"name": "_tokenToRedeem",
"type": "address"
},
{
"name": "_loopLimit",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"name": "bondsAmount",
"type": "uint256"
}
],
"name": "MintedBond",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "caller",
"type": "address"
},
{
"indexed": false,
"name": "bonds",
"type": "uint256[]"
}
],
"name": "RedeemedCoupons",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "caller",
"type": "address"
},
{
"indexed": false,
"name": "amountClaimed",
"type": "uint256"
}
],
"name": "ClaimedPar",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "bonds",
"type": "uint256[]"
}
],
"name": "Transferred",
"type": "event"
}
],
"devdoc": {
"methods": {
"changeLoopLimit(uint256)": {
"params": {
"_loopLimit": "The new loop limit\r"
}
},
"getBalance(address)": {
"details": "Get amount of bonds that an address has\r",
"params": {
"who": "The address to analyze\r"
}
},
"getBondOwner(uint256)": {
"details": "Get the owner of a specific bond\r",
"params": {
"bond": "The bond id to analyze\r"
}
},
"getCap()": {
"details": "Get the cap amount for these bonds\r"
},
"getCouponRate()": {
"details": "Get the yield of a bond\r"
},
"getCouponThreshold()": {
"details": "Get the amount of time that needs to pass between the dates when you can redeem coupons\r"
},
"getCouponsRedeemed(uint256)": {
"details": "Get how many coupons were redeemed for a specific bond\r",
"params": {
"bond": "The bond id to analyze\r"
}
},
"getLastTimeRedeemed(uint256)": {
"details": "Get the last time coupons for a particular bond were redeemed\r",
"params": {
"bond": "The bond id to analyze\r"
}
},
"getMaturity(uint256)": {
"details": "Get the maturity date for a specific bond\r",
"params": {
"bond": "The bond id to analyze\r"
}
},
"getName()": {
"details": "Get the name of this smart bond contract\r"
},
"getNonce()": {
"details": "Get the latest nonce\r"
},
"getParDecimals()": {
"details": "If the par value is a real number, it might have decimals. Get the amount of decimals the par value has\r"
},
"getParValue()": {
"details": "Get the par value for these bonds\r"
},
"getRemainingCoupons(uint256)": {
"details": "Get how many coupons remain to be redeemed for a specific bond\r",
"params": {
"bond": "The bond id to analyze\r"
}
},
"getSimpleInterest()": {
"details": "Get how much money is redeemed on a coupon\r"
},
"getTerm()": {
"details": "Get how much time it takes for a bond to mature\r"
},
"getTimesToRedeem()": {
"details": "Get how many times coupons can be redeemed for bonds\r"
},
"getTokenAddress()": {
"details": "Get the address of the token that is redeemed for coupons\r"
},
"getTokenToRedeem()": {
"details": "Get the address of the token redeemed for coupons\r"
},
"getTotalBonds()": {
"details": "Get the total amount of bonds issued\r"
},
"getTotalDebt()": {
"details": "Get the current unpaid debt\r"
},
"mintBond(address,uint256)": {
"params": {
"_bondsAmount": "How many bonds to mint\r",
"buyer": "The buyer of the bonds\r"
}
},
"redeemCoupons(uint256[])": {
"params": {
"_bonds": "An array of bond ids corresponding to the bonds you want to redeem apon\r"
}
},
"renounceOwnership()": {
"details": "Allows the current owner to relinquish control of the contract.\r"
},
"transfer(address,uint256[])": {
"params": {
"_bonds": "The ids of the bonds that you want to transfer\r",
"receiver": "The receiver of the bonds\r"
}
},
"transferOwnership(address)": {
"details": "Allows the current owner to transfer control of the contract to a newOwner.\r",
"params": {
"_newOwner": "The address to transfer ownership to.\r"
}
}
}
},
"userdoc": {
"methods": {
"changeLoopLimit(uint256)": {
"notice": "Change the number of elements you can loop through in this contract\r"
},
"donate()": {
"notice": "Donate money to this contract\r"
},
"mintBond(address,uint256)": {
"notice": "Mint bonds to a new buyer\r"
},
"redeemCoupons(uint256[])": {
"notice": "Redeem coupons on your bonds\r"
},
"renounceOwnership()": {
"notice": "Renouncing to ownership will leave the contract without an owner.\r It will not be possible to call the functions with the `onlyOwner`\r modifier anymore.\r"
},
"transfer(address,uint256[])": {
"notice": "Transfer bonds to another address\r"
}
}
}
},
"settings": {
"compilationTarget": {
"contracts/SimpleBond.sol": "SimpleBond"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/SimpleBond.sol": {
"keccak256": "0xa34a3ccddf4aad9341850a63b1999ec6fc80c77f93a879b68002dec8ea474011",
"urls": [
"bzzr://7945fd589a1e7bb409186d20f9cbe804c91a0f39911264b04daa2f6a02fa60b2"
]
},
"contracts/interfaces/ISimpleBond.sol": {
"keccak256": "0xef82ce35309d63290c39b6b0f28e06bdab51c0dbfe8f47b7357527456c4cfdde",
"urls": [
"bzzr://7aca42e9edd593860493bacd3733e0a2b0e5fbc4eafd029dfc3fa989810f93c7"
]
},
"contracts/zeppelin/ERC20/BasicToken.sol": {
"keccak256": "0x9b0f9989551460c4e1673f3e73c7e8d2cd6f571bd4eee04473309e49e5971788",
"urls": [
"bzzr://a0622d9da55a5b2d6f1424d33bab4e37e115afb991a18dcac2dc91bdb2a4744f"
]
},
"contracts/zeppelin/ERC20/ERC20Basic.sol": {
"keccak256": "0xbb201a80487bd32031b4fdd6d8eb952c15b4ba063ca5bb2dd1e45d1cafeb7f03",
"urls": [
"bzzr://87fbf79b2211e590c50ee4ed1cb68f94e6e98ce4d3a43ae0d0a0e0aacc351378"
]
},
"contracts/zeppelin/SafeMath.sol": {
"keccak256": "0xa94530cb7c130096789d3b133fa9725f4b3401cd2e1745bcb6e3286bfb5e0eb1",
"urls": [
"bzzr://5c3b99342e7e662ab85e1ebb62d61b75be57bce30e2822440f7ec4684129f644"
]
},
"contracts/zeppelin/ownership/Ownable.sol": {
"keccak256": "0x87baa6ae14ac3fe48e3c717e8dc5f09e270d662a32a3a3a26e8b23a517aeaf21",
"urls": [
"bzzr://bc0fbeae0197082dfbc42eb312d0a33ffcf1836c22a584bd97fe4c2ffc29969a"
]
}
},
"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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60806040526000600c556000600d556000600f553480156200002057600080fd5b50604051620029eb380380620029eb83398181016040526101208110156200004757600080fd5b81019080805160405193929190846401000000008211156200006857600080fd5b838201915060208201858111156200007f57600080fd5b82518660018202830111640100000000821117156200009d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000d3578082015181840152602081019050620000b6565b50505050905090810190601f168015620001015780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600089511162000213576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f456d707479206e616d652070726f76696465640000000000000000000000000081525060200191505060405180910390fd5b600086116200026e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620029a66022913960400191505060405180910390fd5b60008811620002e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f506172206c6f776572207468616e206f7220657175616c20300000000000000081525060200191505060405180910390fd5b600085116200035c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5465726d206c6f776572207468616e206f7220657175616c203000000000000081525060200191505060405180910390fd5b60008211620003d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c203081525060200191505060405180910390fd5b600083116200042e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180620029c86023913960400191505060405180910390fd5b88600190805190602001906200044692919062000501565b50876007819055508360068190555081600b819055508660048190555082600a81905550856008819055508460098190555062000496600a54600954620004ec60201b620020281790919060201c565b600d8190555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050620005a7565b6000818381620004f857fe5b04905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200054457805160ff191683800117855562000575565b8280016001018555821562000575579182015b828111156200057457825182559160200191906001019062000557565b5b50905062000584919062000588565b5090565b5b80821115620005a357600081600090555060010162000589565b5090565b6123ef80620005b76000396000f3fe6080604052600436106101bb5760003560e01c80637f1e7d41116100ec578063d561bf531161008a578063e575943611610064578063e5759436146108a1578063f2fde38b146108cc578063f8b2cb4f1461091d578063ff214cbf14610982576101c2565b8063d561bf5314610810578063d87f0afc1461083b578063e0e09e0f14610876576101c2565b806395c8cbc9116100c657806395c8cbc91461072a578063bb305ef214610755578063cb57b0a5146107ba578063d087d288146107e5576101c2565b80637f1e7d411461064b5780638da5cb5b1461069a57806395be1f1a146106db576101c2565b806343b074851161015957806370843ae91161013357806370843ae914610519578063715018a6146105445780637a36c3071461055b5780637aafdeee14610620576101c2565b806343b0748514610444578063554d578d1461049357806366e3d5ac146104be576101c2565b806317d7de7c1161019557806317d7de7c146102695780632b4e4e96146102f957806334ce998a146103de57806339dc486a14610409576101c2565b80630f0044bf146101c4578063112f84e114610213578063124b65b41461023e576101c2565b366101c257005b005b3480156101d057600080fd5b506101fd600480360360208110156101e757600080fd5b810190808035906020019092919050505061098c565b6040518082815260200191505060405180910390f35b34801561021f57600080fd5b50610228610a01565b6040518082815260200191505060405180910390f35b34801561024a57600080fd5b50610253610a47565b6040518082815260200191505060405180910390f35b34801561027557600080fd5b5061027e610a51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102be5780820151818401526020810190506102a3565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030557600080fd5b506103dc6004803603604081101561031c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035957600080fd5b82018360208201111561036b57600080fd5b8035906020019184602083028401116401000000008311171561038d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610af3565b005b3480156103ea57600080fd5b506103f3610f77565b6040518082815260200191505060405180910390f35b34801561041557600080fd5b506104426004803603602081101561042c57600080fd5b8101908080359060200190929190505050610f81565b005b34801561045057600080fd5b5061047d6004803603602081101561046757600080fd5b81019080803590602001909291905050506110fe565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611186565b6040518082815260200191505060405180910390f35b3480156104ca57600080fd5b50610517600480360360408110156104e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611190565b005b34801561052557600080fd5b5061052e61165a565b6040518082815260200191505060405180910390f35b34801561055057600080fd5b50610559611664565b005b34801561056757600080fd5b5061061e6004803603602081101561057e57600080fd5b810190808035906020019064010000000081111561059b57600080fd5b8201836020820111156105ad57600080fd5b803590602001918460208302840111640100000000831117156105cf57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611762565b005b34801561062c57600080fd5b50610635611d1b565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b506106846004803603602081101561066e57600080fd5b8101908080359060200190929190505050611d25565b6040518082815260200191505060405180910390f35b3480156106a657600080fd5b506106af611d42565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b50610714600480360360208110156106fe57600080fd5b8101908080359060200190929190505050611d66565b6040518082815260200191505060405180910390f35b34801561073657600080fd5b5061073f611d83565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b5061078e6004803603602081101561077857600080fd5b8101908080359060200190929190505050611d8d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c657600080fd5b506107cf611dca565b6040518082815260200191505060405180910390f35b3480156107f157600080fd5b506107fa611dd4565b6040518082815260200191505060405180910390f35b34801561081c57600080fd5b50610825611dde565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b506108746004803603602081101561085e57600080fd5b8101908080359060200190929190505050611de8565b005b34801561088257600080fd5b5061088b611ea3565b6040518082815260200191505060405180910390f35b3480156108ad57600080fd5b506108b6611ead565b6040518082815260200191505060405180910390f35b3480156108d857600080fd5b5061091b600480360360208110156108ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b005b34801561092957600080fd5b5061096c6004803603602081101561094057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b6040518082815260200191505060405180910390f35b61098a611f64565b005b6000806109b7600954601160008681526020019081526020016000205461203c90919063ffffffff16565b905060006109f56109e6600d54601260008881526020019081526020016000205461205390919063ffffffff16565b8361208490919063ffffffff16565b90508092505050919050565b600080610a0c611dca565b90506000610a18611dde565b9050610a406064610a32848461205390919063ffffffff16565b61202890919063ffffffff16565b9250505090565b6000600954905090565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae95780601f10610abe57610100808354040283529160200191610ae9565b820191906000526020600020905b815481529060010190602001808311610acc57829003601f168201915b5050505050905090565b6000815111610b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f52656365697665722063616e27742062652061646472657373206e756c6c000081525060200191505060405180910390fd5b610c1633611f1b565b81511115610c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b60005b8151811015610ecc573373ffffffffffffffffffffffffffffffffffffffff1660106000848481518110610ca257fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580610d235750600a5460126000848481518110610d0a57fe5b6020026020010151815260200190815260200160002054145b15610d2d57610ebf565b8260106000848481518110610d3e57fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de56001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203c90919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e7b6001601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080600101915050610c72565b508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f227687bda9848548d0e213bd3dcc76bc21295e33dff6849e2c2bd7c75cb77bf7836040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f60578082015181840152602081019050610f45565b505050509050019250505060405180910390a35050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806122816034913960400191505060405180910390fd5b60148190806001815401808255809150506001900390600052602060002001600090919091909150556110b3611091606461108360085461107560075460055461205390919063ffffffff16565b61205390919063ffffffff16565b61202890919063ffffffff16565b6110a560028461205390919063ffffffff16565b61208490919063ffffffff16565b6003600082825401925050819055507f2b9f2bb7a18512e471caa1d7f4d4f7a05fcdc0b22c1492bfa58ea4803a0683036003546040518082815260200191505060405180910390a150565b60008061110a83611d8d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915050611181565b600061117584611d66565b905080600a5403925050505b919050565b6000600654905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f42757965722063616e27742062652061646472657373206e756c6c000000000081525060200191505060405180910390fd5b600081116112e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061236a602d913960400191505060405180910390fd5b600b5481111561133f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806122b56039913960400191505060405180910390fd5b600060065411156113ba576006546113628260055461208490919063ffffffff16565b11156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806122ee6037913960400191505060405180910390fd5b5b6113cf8160055461208490919063ffffffff16565b6005819055506113ea81600c5461208490919063ffffffff16565b600c8190555060005b81811015611570576114106009544261208490919063ffffffff16565b6011600061142984600c5461203c90919063ffffffff16565b815260200190815260200160002081905550826010600061145584600c5461203c90919063ffffffff16565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260006114bc84600c5461203c90919063ffffffff16565b81526020019081526020016000208190555061152082601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506113f3565b506115fb6115c461158c83600a5461205390919063ffffffff16565b6115b660646115a860085460075461205390919063ffffffff16565b61202890919063ffffffff16565b61205390919063ffffffff16565b6115ed6115dc8460075461205390919063ffffffff16565b60025461208490919063ffffffff16565b61208490919063ffffffff16565b6002819055507ff684d4510acd3fe860087ff339d3668df1f4b82d05e5b4cab07130929bfa835d8282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000600d54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116bc57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008151116117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600b5481511115611835576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806123256045913960600191505060405180910390fd5b61183e33611f1b565b81511115611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b6000806000805b8451811015611c85573373ffffffffffffffffffffffffffffffffffffffff16601060008784815181106118ce57fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158061194f5750600a546012600087848151811061193657fe5b6020026020010151815260200190815260200160002054145b1561195957611c78565b6119946009546011600088858151811061196f57fe5b602002602001015181526020019081526020016000205461203c90919063ffffffff16565b93506119e36119d4600d54601260008986815181106119af57fe5b602002602001015181526020019081526020016000205461205390919063ffffffff16565b8561208490919063ffffffff16565b9250601160008683815181106119f557fe5b6020026020010151815260200190815260200160002054611a21600d548561208490919063ffffffff16565b101580611a415750611a3e600d548461208490919063ffffffff16565b42105b15611a4b57611c78565b611a72600d54611a64854261203c90919063ffffffff16565b61202890919063ffffffff16565b91506000821415611a8257611c78565b611abb8260126000888581518110611a9657fe5b602002602001015181526020019081526020016000205461208490919063ffffffff16565b60126000878481518110611acb57fe5b6020026020010151815260200190815260200160002081905550611b41611b3b611b2c611b04600260045461208490919063ffffffff16565b600a0a611b1e60085460075461205390919063ffffffff16565b61202890919063ffffffff16565b8461205390919063ffffffff16565b3361209b565b600a5460126000878481518110611b5457fe5b60200260200101518152602001908152602001600020541415611c7757600060106000878481518110611b8357fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000878481518110611be957fe5b6020026020010151815260200190815260200160002081905550601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550611c76611c70600454600a0a60075461202890919063ffffffff16565b3361209b565b5b5b808060010191505061189e565b503373ffffffffffffffffffffffffffffffffffffffff167f6842ed68604cbaecf495f440b5684cffd179b26f069e5205907f642a1bc91e4d856040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611d02578082015181840152602081019050611ce7565b505050509050019250505060405180910390a250505050565b6000600554905090565b600060116000838152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060126000838152602001908152602001600020549050919050565b6000600354905090565b60006010600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b6000600c54905090565b6000600754905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4057600080fd5b60008111611e99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806123976023913960400191505060405180910390fd5b80600b8190555050565b6000600454905090565b6000600a54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f0f57600080fd5b611f1881612101565b50565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fbc57600080fd5b6002543410612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f9602c913960400191505060405180910390fd5b34600260008282540392505081905550565b600081838161203357fe5b04905092915050565b60008282111561204857fe5b818303905092915050565b600080831415612066576000905061207e565b81830290508183828161207557fe5b041461207d57fe5b5b92915050565b600081830190508281101561209557fe5b92915050565b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156120e1573d6000803e3d6000fd5b506120f78260025461203c90919063ffffffff16565b6002819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5472616e73616374696f6e20616d6f756e7420697320686967686572207468616e20746f74616c206f7765644172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e207468652062616c616e6365206f662074686520626f6e6473206f66207468652073656e6465724f6e6c7920746865206f7261636c6520697320617574686f72697a656420746f2063616c6c20746869732066756e6374696f6e2e416d6f756e74206f6620626f6e647320746f206d696e74206d757374206265206c6f776572207468616e20746865206c6f6f70206c696d6974546f74616c20616d6f756e74206f6620626f6e6473206d757374206265206c6f776572206f7220657175616c20746f20746865206361704172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e20746865206c6f6f6f70206c696d6974416d6f756e74206f6620626f6e647320746f206d696e74206d75737420626520686967686572207468616e20304c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c20746f2030a2646970667358221220924f6ddd47242160ee4cfeb0d918d6e18d00d1daab5dcb41c0bd985df32dd39d64736f6c634300060c0033436f75706f6e2072617465206c6f776572207468616e206f7220657175616c20302054696d657320746f2072656465656d206c6f776572206f7220657175616c20746f2030",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x0 PUSH1 0xD SSTORE PUSH1 0x0 PUSH1 0xF SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x29EB CODESIZE SUB DUP1 PUSH3 0x29EB DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x120 DUP2 LT ISZERO PUSH3 0x47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x1 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH3 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xD3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0xB6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x101 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 PUSH1 0x40 MSTORE PUSH1 0x20 ADD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP10 MLOAD GT PUSH3 0x213 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x456D707479206E616D652070726F766964656400000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT PUSH3 0x26E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH3 0x29A6 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH3 0x2E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506172206C6F776572207468616E206F7220657175616C203000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 GT PUSH3 0x35C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5465726D206C6F776572207468616E206F7220657175616C2030000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 GT PUSH3 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4C6F6F70206C696D6974206C6F776572207468616E206F7220657175616C2030 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT PUSH3 0x42E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH3 0x29C8 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x446 SWAP3 SWAP2 SWAP1 PUSH3 0x501 JUMP JUMPDEST POP DUP8 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x6 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0xB DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0xA DUP2 SWAP1 SSTORE POP DUP6 PUSH1 0x8 DUP2 SWAP1 SSTORE POP DUP5 PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH3 0x496 PUSH1 0xA SLOAD PUSH1 0x9 SLOAD PUSH3 0x4EC PUSH1 0x20 SHL PUSH3 0x2028 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xE PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP PUSH3 0x5A7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 PUSH3 0x4F8 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP 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 0x544 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x575 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x575 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x574 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x557 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x584 SWAP2 SWAP1 PUSH3 0x588 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x5A3 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x589 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x23EF DUP1 PUSH3 0x5B7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F1E7D41 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xD561BF53 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xE5759436 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE5759436 EQ PUSH2 0x8A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0xF8B2CB4F EQ PUSH2 0x91D JUMPI DUP1 PUSH4 0xFF214CBF EQ PUSH2 0x982 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xD561BF53 EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xD87F0AFC EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE0E09E0F EQ PUSH2 0x876 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x95C8CBC9 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x95C8CBC9 EQ PUSH2 0x72A JUMPI DUP1 PUSH4 0xBB305EF2 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0xCB57B0A5 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xD087D288 EQ PUSH2 0x7E5 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x7F1E7D41 EQ PUSH2 0x64B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0x95BE1F1A EQ PUSH2 0x6DB JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x70843AE9 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x70843AE9 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x7A36C307 EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x7AAFDEEE EQ PUSH2 0x620 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0x554D578D EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x66E3D5AC EQ PUSH2 0x4BE JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x2B4E4E96 EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x34CE998A EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x39DC486A EQ PUSH2 0x409 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xF0044BF EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x112F84E1 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x124B65B4 EQ PUSH2 0x23E JUMPI PUSH2 0x1C2 JUMP JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x98C 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 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH2 0xA01 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 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0xA47 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 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27E PUSH2 0xA51 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 0x2BE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2A3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2EB 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 0x305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xAF3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH2 0xF77 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 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x442 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF81 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10FE 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 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A8 PUSH2 0x1186 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 0x4CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x517 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST 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 0x1190 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x52E PUSH2 0x165A 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 0x550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x559 PUSH2 0x1664 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x1762 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x635 PUSH2 0x1D1B 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 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x684 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D25 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 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AF PUSH2 0x1D42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x714 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D66 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 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73F PUSH2 0x1D83 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 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x78E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CF PUSH2 0x1DCA 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 0x7F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7FA PUSH2 0x1DD4 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 0x81C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x825 PUSH2 0x1DDE 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 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x874 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1DE8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x88B PUSH2 0x1EA3 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 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B6 PUSH2 0x1EAD 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 0x8D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x91B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1EB7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x96C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98A PUSH2 0x1F64 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B7 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9F5 PUSH2 0x9E6 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA0C PUSH2 0x1DCA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA18 PUSH2 0x1DDE JUMP JUMPDEST SWAP1 POP PUSH2 0xA40 PUSH1 0x64 PUSH2 0xA32 DUP5 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 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 0xAE9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xABE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAE9 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 0xACC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xB6A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x52656365697665722063616E27742062652061646472657373206E756C6C0000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC16 CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xECC JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xCA2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0xD23 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD0A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0xD2D JUMPI PUSH2 0xEBF JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD3E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xDE5 PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 0xE7B PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC72 JUMP JUMPDEST POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x227687BDA9848548D0E213BD3DCC76BC21295E33DFF6849E2C2BD7C75CB77BF7 DUP4 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF60 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF45 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1027 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2281 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0x10B3 PUSH2 0x1091 PUSH1 0x64 PUSH2 0x1083 PUSH1 0x8 SLOAD PUSH2 0x1075 PUSH1 0x7 SLOAD PUSH1 0x5 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x10A5 PUSH1 0x2 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2B9F2BB7A18512E471CAA1D7F4D4F7A05FCDC0B22C1492BFA58EA4803A068303 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x110A DUP4 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x116A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 POP POP PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP5 PUSH2 0x1D66 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA SLOAD SUB SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x128B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x42757965722063616E27742062652061646472657373206E756C6C0000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x12E4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x236A PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 GT ISZERO PUSH2 0x133F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22B5 PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD GT ISZERO PUSH2 0x13BA JUMPI PUSH1 0x6 SLOAD PUSH2 0x1362 DUP3 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22EE PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x13CF DUP2 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE POP PUSH2 0x13EA DUP2 PUSH1 0xC SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xC DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1570 JUMPI PUSH2 0x1410 PUSH1 0x9 SLOAD TIMESTAMP PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x11 PUSH1 0x0 PUSH2 0x1429 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x1455 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 PUSH2 0x14BC DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1520 DUP3 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x13F3 JUMP JUMPDEST POP PUSH2 0x15FB PUSH2 0x15C4 PUSH2 0x158C DUP4 PUSH1 0xA SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15B6 PUSH1 0x64 PUSH2 0x15A8 PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x15DC DUP5 PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH32 0xF684D4510ACD3FE860087FF339D3668DF1F4B82D05E5B4CAB07130929BFA835D DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x17D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 MLOAD GT ISZERO PUSH2 0x1835 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x45 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2325 PUSH1 0x45 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x183E CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1C85 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18CE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x194F JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1936 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0x1959 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1994 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x196F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP PUSH2 0x19E3 PUSH2 0x19D4 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP10 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x19AF JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x11 PUSH1 0x0 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19F5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A21 PUSH1 0xD SLOAD DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO DUP1 PUSH2 0x1A41 JUMPI POP PUSH2 0x1A3E PUSH1 0xD SLOAD DUP5 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST TIMESTAMP LT JUMPDEST ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1A72 PUSH1 0xD SLOAD PUSH2 0x1A64 DUP6 TIMESTAMP PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x1A82 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1ABB DUP3 PUSH1 0x12 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A96 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1ACB JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1B41 PUSH2 0x1B3B PUSH2 0x1B2C PUSH2 0x1B04 PUSH1 0x2 PUSH1 0x4 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH2 0x1B1E PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B54 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x1C77 JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B83 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BE9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x13 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 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP PUSH2 0x1C76 PUSH2 0x1C70 PUSH1 0x4 SLOAD PUSH1 0xA EXP PUSH1 0x7 SLOAD PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x189E JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6842ED68604CBAECF495F440B5684CFFD179B26F069E5205907F642A1BC91E4D DUP6 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D02 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CE7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP4 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1E99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2397 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xB DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x2101 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE LT PUSH2 0x2016 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x21F9 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2033 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2048 JUMPI INVALID JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x2066 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x207E JUMP JUMPDEST DUP2 DUP4 MUL SWAP1 POP DUP2 DUP4 DUP3 DUP2 PUSH2 0x2075 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x207D JUMPI INVALID JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x2095 JUMPI INVALID JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x20E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x20F7 DUP3 PUSH1 0x2 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x213B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP INVALID SLOAD PUSH19 0x616E73616374696F6E20616D6F756E74206973 KECCAK256 PUSH9 0x696768657220746861 PUSH15 0x20746F74616C206F77656441727261 PUSH26 0x206F6620626F6E6473206D75737420686176652061206E756D62 PUSH6 0x72206F662062 PUSH16 0x6E6473206C6F776572207468616E2074 PUSH9 0x652062616C616E6365 KECCAK256 PUSH16 0x662074686520626F6E6473206F662074 PUSH9 0x652073656E6465724F PUSH15 0x6C7920746865206F7261636C652069 PUSH20 0x20617574686F72697A656420746F2063616C6C20 PUSH21 0x6869732066756E6374696F6E2E416D6F756E74206F PUSH7 0x20626F6E647320 PUSH21 0x6F206D696E74206D757374206265206C6F77657220 PUSH21 0x68616E20746865206C6F6F70206C696D6974546F74 PUSH2 0x6C20 PUSH2 0x6D6F PUSH22 0x6E74206F6620626F6E6473206D757374206265206C6F PUSH24 0x6572206F7220657175616C20746F20746865206361704172 PUSH19 0x6179206F6620626F6E6473206D757374206861 PUSH23 0x652061206E756D626572206F6620626F6E6473206C6F77 PUSH6 0x72207468616E KECCAK256 PUSH21 0x6865206C6F6F6F70206C696D6974416D6F756E7420 PUSH16 0x6620626F6E647320746F206D696E7420 PUSH14 0x7573742062652068696768657220 PUSH21 0x68616E20304C6F6F70206C696D6974206C6F776572 KECCAK256 PUSH21 0x68616E206F7220657175616C20746F2030A2646970 PUSH7 0x7358221220924F PUSH14 0xDD47242160EE4CFEB0D918D6E18D STOP 0xD1 0xDA 0xAB 0x5D 0xCB COINBASE 0xC0 0xBD SWAP9 0x5D RETURN 0x2D 0xD3 SWAP14 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER NUMBER PUSH16 0x75706F6E2072617465206C6F77657220 PUSH21 0x68616E206F7220657175616C20302054696D657320 PUSH21 0x6F2072656465656D206C6F776572206F7220657175 PUSH2 0x6C20 PUSH21 0x6F2030000000000000000000000000000000000000 ",
"sourceMap": "207:14516:0:-:0;;;697:1;681:17;;731:1;705:27;;784:1;760:25;;1511:1007;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:10:3;623:5;;:18;;;;;;;;;;;;;;;;;;1837:1:0::1;1821:5;1815:19;:23;1807:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;1891:1;1881:7;:11;1873:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:1;1950:4;:8;1942:46;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2015:1;2007:5;:9;1999:48;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2079:1;2066:10;:14;2058:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2153:1;2136:14;:18;2128:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2214:5;2207:4;:12;;;;;;;;;;;;:::i;:::-;;2241:4;2230:8;:15;;;;2262:4;2256:3;:10;;;;2289;2277:9;:22;;;;2324:12;2310:11;:26;;;;2363:14;2347:13;:30;;;;2401:7;2388:10;:20;;;;2426:5;2419:4;:12;;;;2460:23;2469:13;;2460:4;;:8;;;;;;:23;;;;:::i;:::-;2442:15;:41;;;;2503:7;2494:6;;:16;;;;;;;;;;;;;;;;;;1511:1007:::0;;;;;;;;;207:14516;;725:288:2;785:7;1005:2;1000;:7;;;;;;993:14;;725:288;;;;:::o;207:14516:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106101bb5760003560e01c80637f1e7d41116100ec578063d561bf531161008a578063e575943611610064578063e5759436146108a1578063f2fde38b146108cc578063f8b2cb4f1461091d578063ff214cbf14610982576101c2565b8063d561bf5314610810578063d87f0afc1461083b578063e0e09e0f14610876576101c2565b806395c8cbc9116100c657806395c8cbc91461072a578063bb305ef214610755578063cb57b0a5146107ba578063d087d288146107e5576101c2565b80637f1e7d411461064b5780638da5cb5b1461069a57806395be1f1a146106db576101c2565b806343b074851161015957806370843ae91161013357806370843ae914610519578063715018a6146105445780637a36c3071461055b5780637aafdeee14610620576101c2565b806343b0748514610444578063554d578d1461049357806366e3d5ac146104be576101c2565b806317d7de7c1161019557806317d7de7c146102695780632b4e4e96146102f957806334ce998a146103de57806339dc486a14610409576101c2565b80630f0044bf146101c4578063112f84e114610213578063124b65b41461023e576101c2565b366101c257005b005b3480156101d057600080fd5b506101fd600480360360208110156101e757600080fd5b810190808035906020019092919050505061098c565b6040518082815260200191505060405180910390f35b34801561021f57600080fd5b50610228610a01565b6040518082815260200191505060405180910390f35b34801561024a57600080fd5b50610253610a47565b6040518082815260200191505060405180910390f35b34801561027557600080fd5b5061027e610a51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102be5780820151818401526020810190506102a3565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030557600080fd5b506103dc6004803603604081101561031c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035957600080fd5b82018360208201111561036b57600080fd5b8035906020019184602083028401116401000000008311171561038d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610af3565b005b3480156103ea57600080fd5b506103f3610f77565b6040518082815260200191505060405180910390f35b34801561041557600080fd5b506104426004803603602081101561042c57600080fd5b8101908080359060200190929190505050610f81565b005b34801561045057600080fd5b5061047d6004803603602081101561046757600080fd5b81019080803590602001909291905050506110fe565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611186565b6040518082815260200191505060405180910390f35b3480156104ca57600080fd5b50610517600480360360408110156104e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611190565b005b34801561052557600080fd5b5061052e61165a565b6040518082815260200191505060405180910390f35b34801561055057600080fd5b50610559611664565b005b34801561056757600080fd5b5061061e6004803603602081101561057e57600080fd5b810190808035906020019064010000000081111561059b57600080fd5b8201836020820111156105ad57600080fd5b803590602001918460208302840111640100000000831117156105cf57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611762565b005b34801561062c57600080fd5b50610635611d1b565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b506106846004803603602081101561066e57600080fd5b8101908080359060200190929190505050611d25565b6040518082815260200191505060405180910390f35b3480156106a657600080fd5b506106af611d42565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b50610714600480360360208110156106fe57600080fd5b8101908080359060200190929190505050611d66565b6040518082815260200191505060405180910390f35b34801561073657600080fd5b5061073f611d83565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b5061078e6004803603602081101561077857600080fd5b8101908080359060200190929190505050611d8d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c657600080fd5b506107cf611dca565b6040518082815260200191505060405180910390f35b3480156107f157600080fd5b506107fa611dd4565b6040518082815260200191505060405180910390f35b34801561081c57600080fd5b50610825611dde565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b506108746004803603602081101561085e57600080fd5b8101908080359060200190929190505050611de8565b005b34801561088257600080fd5b5061088b611ea3565b6040518082815260200191505060405180910390f35b3480156108ad57600080fd5b506108b6611ead565b6040518082815260200191505060405180910390f35b3480156108d857600080fd5b5061091b600480360360208110156108ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b005b34801561092957600080fd5b5061096c6004803603602081101561094057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b6040518082815260200191505060405180910390f35b61098a611f64565b005b6000806109b7600954601160008681526020019081526020016000205461203c90919063ffffffff16565b905060006109f56109e6600d54601260008881526020019081526020016000205461205390919063ffffffff16565b8361208490919063ffffffff16565b90508092505050919050565b600080610a0c611dca565b90506000610a18611dde565b9050610a406064610a32848461205390919063ffffffff16565b61202890919063ffffffff16565b9250505090565b6000600954905090565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae95780601f10610abe57610100808354040283529160200191610ae9565b820191906000526020600020905b815481529060010190602001808311610acc57829003601f168201915b5050505050905090565b6000815111610b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f52656365697665722063616e27742062652061646472657373206e756c6c000081525060200191505060405180910390fd5b610c1633611f1b565b81511115610c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b60005b8151811015610ecc573373ffffffffffffffffffffffffffffffffffffffff1660106000848481518110610ca257fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580610d235750600a5460126000848481518110610d0a57fe5b6020026020010151815260200190815260200160002054145b15610d2d57610ebf565b8260106000848481518110610d3e57fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de56001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203c90919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e7b6001601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080600101915050610c72565b508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f227687bda9848548d0e213bd3dcc76bc21295e33dff6849e2c2bd7c75cb77bf7836040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f60578082015181840152602081019050610f45565b505050509050019250505060405180910390a35050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806122816034913960400191505060405180910390fd5b60148190806001815401808255809150506001900390600052602060002001600090919091909150556110b3611091606461108360085461107560075460055461205390919063ffffffff16565b61205390919063ffffffff16565b61202890919063ffffffff16565b6110a560028461205390919063ffffffff16565b61208490919063ffffffff16565b6003600082825401925050819055507f2b9f2bb7a18512e471caa1d7f4d4f7a05fcdc0b22c1492bfa58ea4803a0683036003546040518082815260200191505060405180910390a150565b60008061110a83611d8d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915050611181565b600061117584611d66565b905080600a5403925050505b919050565b6000600654905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f42757965722063616e27742062652061646472657373206e756c6c000000000081525060200191505060405180910390fd5b600081116112e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061236a602d913960400191505060405180910390fd5b600b5481111561133f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806122b56039913960400191505060405180910390fd5b600060065411156113ba576006546113628260055461208490919063ffffffff16565b11156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806122ee6037913960400191505060405180910390fd5b5b6113cf8160055461208490919063ffffffff16565b6005819055506113ea81600c5461208490919063ffffffff16565b600c8190555060005b81811015611570576114106009544261208490919063ffffffff16565b6011600061142984600c5461203c90919063ffffffff16565b815260200190815260200160002081905550826010600061145584600c5461203c90919063ffffffff16565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260006114bc84600c5461203c90919063ffffffff16565b81526020019081526020016000208190555061152082601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506113f3565b506115fb6115c461158c83600a5461205390919063ffffffff16565b6115b660646115a860085460075461205390919063ffffffff16565b61202890919063ffffffff16565b61205390919063ffffffff16565b6115ed6115dc8460075461205390919063ffffffff16565b60025461208490919063ffffffff16565b61208490919063ffffffff16565b6002819055507ff684d4510acd3fe860087ff339d3668df1f4b82d05e5b4cab07130929bfa835d8282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000600d54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116bc57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008151116117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600b5481511115611835576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806123256045913960600191505060405180910390fd5b61183e33611f1b565b81511115611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b6000806000805b8451811015611c85573373ffffffffffffffffffffffffffffffffffffffff16601060008784815181106118ce57fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158061194f5750600a546012600087848151811061193657fe5b6020026020010151815260200190815260200160002054145b1561195957611c78565b6119946009546011600088858151811061196f57fe5b602002602001015181526020019081526020016000205461203c90919063ffffffff16565b93506119e36119d4600d54601260008986815181106119af57fe5b602002602001015181526020019081526020016000205461205390919063ffffffff16565b8561208490919063ffffffff16565b9250601160008683815181106119f557fe5b6020026020010151815260200190815260200160002054611a21600d548561208490919063ffffffff16565b101580611a415750611a3e600d548461208490919063ffffffff16565b42105b15611a4b57611c78565b611a72600d54611a64854261203c90919063ffffffff16565b61202890919063ffffffff16565b91506000821415611a8257611c78565b611abb8260126000888581518110611a9657fe5b602002602001015181526020019081526020016000205461208490919063ffffffff16565b60126000878481518110611acb57fe5b6020026020010151815260200190815260200160002081905550611b41611b3b611b2c611b04600260045461208490919063ffffffff16565b600a0a611b1e60085460075461205390919063ffffffff16565b61202890919063ffffffff16565b8461205390919063ffffffff16565b3361209b565b600a5460126000878481518110611b5457fe5b60200260200101518152602001908152602001600020541415611c7757600060106000878481518110611b8357fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000878481518110611be957fe5b6020026020010151815260200190815260200160002081905550601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550611c76611c70600454600a0a60075461202890919063ffffffff16565b3361209b565b5b5b808060010191505061189e565b503373ffffffffffffffffffffffffffffffffffffffff167f6842ed68604cbaecf495f440b5684cffd179b26f069e5205907f642a1bc91e4d856040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611d02578082015181840152602081019050611ce7565b505050509050019250505060405180910390a250505050565b6000600554905090565b600060116000838152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060126000838152602001908152602001600020549050919050565b6000600354905090565b60006010600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b6000600c54905090565b6000600754905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4057600080fd5b60008111611e99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806123976023913960400191505060405180910390fd5b80600b8190555050565b6000600454905090565b6000600a54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f0f57600080fd5b611f1881612101565b50565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fbc57600080fd5b6002543410612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f9602c913960400191505060405180910390fd5b34600260008282540392505081905550565b600081838161203357fe5b04905092915050565b60008282111561204857fe5b818303905092915050565b600080831415612066576000905061207e565b81830290508183828161207557fe5b041461207d57fe5b5b92915050565b600081830190508281101561209557fe5b92915050565b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156120e1573d6000803e3d6000fd5b506120f78260025461203c90919063ffffffff16565b6002819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5472616e73616374696f6e20616d6f756e7420697320686967686572207468616e20746f74616c206f7765644172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e207468652062616c616e6365206f662074686520626f6e6473206f66207468652073656e6465724f6e6c7920746865206f7261636c6520697320617574686f72697a656420746f2063616c6c20746869732066756e6374696f6e2e416d6f756e74206f6620626f6e647320746f206d696e74206d757374206265206c6f776572207468616e20746865206c6f6f70206c696d6974546f74616c20616d6f756e74206f6620626f6e6473206d757374206265206c6f776572206f7220657175616c20746f20746865206361704172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e20746865206c6f6f6f70206c696d6974416d6f756e74206f6620626f6e647320746f206d696e74206d75737420626520686967686572207468616e20304c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c20746f2030a2646970667358221220924f6ddd47242160ee4cfeb0d918d6e18d00d1daab5dcb41c0bd985df32dd39d64736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F1E7D41 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xD561BF53 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xE5759436 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE5759436 EQ PUSH2 0x8A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0xF8B2CB4F EQ PUSH2 0x91D JUMPI DUP1 PUSH4 0xFF214CBF EQ PUSH2 0x982 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xD561BF53 EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xD87F0AFC EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE0E09E0F EQ PUSH2 0x876 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x95C8CBC9 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x95C8CBC9 EQ PUSH2 0x72A JUMPI DUP1 PUSH4 0xBB305EF2 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0xCB57B0A5 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xD087D288 EQ PUSH2 0x7E5 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x7F1E7D41 EQ PUSH2 0x64B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0x95BE1F1A EQ PUSH2 0x6DB JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x70843AE9 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x70843AE9 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x7A36C307 EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x7AAFDEEE EQ PUSH2 0x620 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0x554D578D EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x66E3D5AC EQ PUSH2 0x4BE JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x2B4E4E96 EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x34CE998A EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x39DC486A EQ PUSH2 0x409 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xF0044BF EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x112F84E1 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x124B65B4 EQ PUSH2 0x23E JUMPI PUSH2 0x1C2 JUMP JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x98C 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 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH2 0xA01 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 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0xA47 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 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27E PUSH2 0xA51 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 0x2BE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2A3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2EB 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 0x305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xAF3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH2 0xF77 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 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x442 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF81 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10FE 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 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A8 PUSH2 0x1186 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 0x4CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x517 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST 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 0x1190 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x52E PUSH2 0x165A 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 0x550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x559 PUSH2 0x1664 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x1762 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x635 PUSH2 0x1D1B 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 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x684 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D25 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 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AF PUSH2 0x1D42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x714 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D66 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 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73F PUSH2 0x1D83 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 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x78E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CF PUSH2 0x1DCA 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 0x7F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7FA PUSH2 0x1DD4 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 0x81C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x825 PUSH2 0x1DDE 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 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x874 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1DE8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x88B PUSH2 0x1EA3 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 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B6 PUSH2 0x1EAD 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 0x8D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x91B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1EB7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x96C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98A PUSH2 0x1F64 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B7 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9F5 PUSH2 0x9E6 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA0C PUSH2 0x1DCA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA18 PUSH2 0x1DDE JUMP JUMPDEST SWAP1 POP PUSH2 0xA40 PUSH1 0x64 PUSH2 0xA32 DUP5 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 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 0xAE9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xABE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAE9 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 0xACC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xB6A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x52656365697665722063616E27742062652061646472657373206E756C6C0000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC16 CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xECC JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xCA2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0xD23 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD0A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0xD2D JUMPI PUSH2 0xEBF JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD3E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xDE5 PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 0xE7B PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC72 JUMP JUMPDEST POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x227687BDA9848548D0E213BD3DCC76BC21295E33DFF6849E2C2BD7C75CB77BF7 DUP4 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF60 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF45 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1027 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2281 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0x10B3 PUSH2 0x1091 PUSH1 0x64 PUSH2 0x1083 PUSH1 0x8 SLOAD PUSH2 0x1075 PUSH1 0x7 SLOAD PUSH1 0x5 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x10A5 PUSH1 0x2 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2B9F2BB7A18512E471CAA1D7F4D4F7A05FCDC0B22C1492BFA58EA4803A068303 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x110A DUP4 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x116A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 POP POP PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP5 PUSH2 0x1D66 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA SLOAD SUB SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x128B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x42757965722063616E27742062652061646472657373206E756C6C0000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x12E4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x236A PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 GT ISZERO PUSH2 0x133F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22B5 PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD GT ISZERO PUSH2 0x13BA JUMPI PUSH1 0x6 SLOAD PUSH2 0x1362 DUP3 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22EE PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x13CF DUP2 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE POP PUSH2 0x13EA DUP2 PUSH1 0xC SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xC DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1570 JUMPI PUSH2 0x1410 PUSH1 0x9 SLOAD TIMESTAMP PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x11 PUSH1 0x0 PUSH2 0x1429 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x1455 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 PUSH2 0x14BC DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1520 DUP3 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x13F3 JUMP JUMPDEST POP PUSH2 0x15FB PUSH2 0x15C4 PUSH2 0x158C DUP4 PUSH1 0xA SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15B6 PUSH1 0x64 PUSH2 0x15A8 PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x15DC DUP5 PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH32 0xF684D4510ACD3FE860087FF339D3668DF1F4B82D05E5B4CAB07130929BFA835D DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x17D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 MLOAD GT ISZERO PUSH2 0x1835 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x45 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2325 PUSH1 0x45 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x183E CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1C85 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18CE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x194F JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1936 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0x1959 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1994 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x196F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP PUSH2 0x19E3 PUSH2 0x19D4 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP10 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x19AF JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x11 PUSH1 0x0 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19F5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A21 PUSH1 0xD SLOAD DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO DUP1 PUSH2 0x1A41 JUMPI POP PUSH2 0x1A3E PUSH1 0xD SLOAD DUP5 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST TIMESTAMP LT JUMPDEST ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1A72 PUSH1 0xD SLOAD PUSH2 0x1A64 DUP6 TIMESTAMP PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x1A82 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1ABB DUP3 PUSH1 0x12 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A96 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1ACB JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1B41 PUSH2 0x1B3B PUSH2 0x1B2C PUSH2 0x1B04 PUSH1 0x2 PUSH1 0x4 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH2 0x1B1E PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B54 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x1C77 JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B83 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BE9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x13 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 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP PUSH2 0x1C76 PUSH2 0x1C70 PUSH1 0x4 SLOAD PUSH1 0xA EXP PUSH1 0x7 SLOAD PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x189E JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6842ED68604CBAECF495F440B5684CFFD179B26F069E5205907F642A1BC91E4D DUP6 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D02 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CE7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP4 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1E99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2397 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xB DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x2101 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE LT PUSH2 0x2016 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x21F9 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2033 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2048 JUMPI INVALID JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x2066 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x207E JUMP JUMPDEST DUP2 DUP4 MUL SWAP1 POP DUP2 DUP4 DUP3 DUP2 PUSH2 0x2075 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x207D JUMPI INVALID JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x2095 JUMPI INVALID JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x20E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x20F7 DUP3 PUSH1 0x2 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x213B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP INVALID SLOAD PUSH19 0x616E73616374696F6E20616D6F756E74206973 KECCAK256 PUSH9 0x696768657220746861 PUSH15 0x20746F74616C206F77656441727261 PUSH26 0x206F6620626F6E6473206D75737420686176652061206E756D62 PUSH6 0x72206F662062 PUSH16 0x6E6473206C6F776572207468616E2074 PUSH9 0x652062616C616E6365 KECCAK256 PUSH16 0x662074686520626F6E6473206F662074 PUSH9 0x652073656E6465724F PUSH15 0x6C7920746865206F7261636C652069 PUSH20 0x20617574686F72697A656420746F2063616C6C20 PUSH21 0x6869732066756E6374696F6E2E416D6F756E74206F PUSH7 0x20626F6E647320 PUSH21 0x6F206D696E74206D757374206265206C6F77657220 PUSH21 0x68616E20746865206C6F6F70206C696D6974546F74 PUSH2 0x6C20 PUSH2 0x6D6F PUSH22 0x6E74206F6620626F6E6473206D757374206265206C6F PUSH24 0x6572206F7220657175616C20746F20746865206361704172 PUSH19 0x6179206F6620626F6E6473206D757374206861 PUSH23 0x652061206E756D626572206F6620626F6E6473206C6F77 PUSH6 0x72207468616E KECCAK256 PUSH21 0x6865206C6F6F6F70206C696D6974416D6F756E7420 PUSH16 0x6620626F6E647320746F206D696E7420 PUSH14 0x7573742062652068696768657220 PUSH21 0x68616E20304C6F6F70206C696D6974206C6F776572 KECCAK256 PUSH21 0x68616E206F7220657175616C20746F2030A2646970 PUSH7 0x7358221220924F PUSH14 0xDD47242160EE4CFEB0D918D6E18D STOP 0xD1 0xDA 0xAB 0x5D 0xCB COINBASE 0xC0 0xBD SWAP9 0x5D RETURN 0x2D 0xD3 SWAP14 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "207:14516:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10164:355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12451:199;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12037:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13714:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6892:913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13877:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8218:757;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10895:330;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13062:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3057:1403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14610:110;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1074:114:3;;;;;;;;;;;;;:::i;:::-;;4676:2019:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14228:101;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12251:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;279:20:3;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11364:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14052:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10636:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12715:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14391:90;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12890:96;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2675:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13530:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11842:106;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1356:105:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13271:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8983:238;;;:::i;:::-;;10164:355;10273:7;10298:17;10318:26;10339:4;;10318:10;:16;10329:4;10318:16;;;;;;;;;;;;:20;;:26;;;;:::i;:::-;10298:46;;10357:29;10389:81;10417:42;10443:15;;10417;:21;10433:4;10417:21;;;;;;;;;;;;:25;;:42;;;;:::i;:::-;10389:9;:13;;:81;;;;:::i;:::-;10357:113;;10490:21;10483:28;;;;10164:355;;;:::o;12451:199::-;12510:7;12530:12;12545:15;:13;:15::i;:::-;12530:30;;12573:11;12587:13;:11;:13::i;:::-;12573:27;;12620:22;12638:3;12620:13;12628:4;12620:3;:7;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;12613:29;;;;12451:199;:::o;12037:88::-;12086:7;12113:4;;12106:11;;12037:88;:::o;13714:94::-;13763:13;13796:4;13789:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13714:94;:::o;6892:913::-;7027:1;7011:6;:13;:17;7003:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7104:1;7084:22;;:8;:22;;;;7076:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7191:22;7202:10;7191;:22::i;:::-;7174:6;:13;:39;;7152:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7351:9;7346:393;7370:6;:13;7366:1;:17;7346:393;;;7447:10;7427:30;;:5;:16;7433:6;7440:1;7433:9;;;;;;;;;;;;;;7427:16;;;;;;;;;;;;;;;;;;;;;:30;;;;:94;;;;7508:13;;7478:15;:26;7494:6;7501:1;7494:9;;;;;;;;;;;;;;7478:26;;;;;;;;;;;;:43;7427:94;7405:140;;;7537:8;;7405:140;7581:8;7562:5;:16;7568:6;7575:1;7568:9;;;;;;;;;;;;;;7562:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7630:30;7658:1;7630:11;:23;7642:10;7630:23;;;;;;;;;;;;;;;;:27;;:30;;;;:::i;:::-;7604:11;:23;7616:10;7604:23;;;;;;;;;;;;;;;:56;;;;7699:28;7725:1;7699:11;:21;7711:8;7699:21;;;;;;;;;;;;;;;;:25;;:28;;;;:::i;:::-;7675:11;:21;7687:8;7675:21;;;;;;;;;;;;;;;:52;;;;7346:393;7385:3;;;;;;;7346:393;;;;7780:8;7756:41;;7768:10;7756:41;;;7790:6;7756:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6892:913;;:::o;13877:98::-;13931:7;13958:9;;13951:16;;13877:98;:::o;8218:757::-;7868:6;;;;;;;;;;;7854:20;;:10;:20;;;7846:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8717:10:::1;8733:14;8717:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8843:77;8869:50;8915:3;8869:41;8899:10;;8869:25;8885:8;;8869:11;;:15;;:25;;;;:::i;:::-;:29;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;8843:21;8862:1;8843:14;:18;;:21;;;;:::i;:::-;:25;;:77;;;;:::i;:::-;8830:9;;:90;;;;;;;;;;;8938:27;8955:9;;8938:27;;;;;;;;;;;;;;;;;;8218:757:::0;:::o;10895:330::-;11004:6;11028:13;11044:18;11057:4;11044:12;:18::i;:::-;11028:34;;11096:1;11079:19;;:5;:19;;;11075:34;;;11107:2;11100:9;;;;;11075:34;11122:16;11141:24;11160:4;11141:18;:24::i;:::-;11122:43;;11208:8;11192:13;;:24;11178:39;;;;10895:330;;;;:::o;13062:86::-;13110:7;13137:3;;13130:10;;13062:86;:::o;3057:1403::-;782:5:3;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;3206:1:0::1;3189:19;;:5;:19;;;;3181:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3288:1;3273:12;:16;3251:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3411:9;;3395:12;:25;;3373:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:1;3522:3;;:7;3518:193;;;3605:3;;3572:29;3588:12;3572:11;;:15;;:29;;;;:::i;:::-;:36;;3546:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3518:193;3737:29;3753:12;3737:11;;:15;;:29;;;;:::i;:::-;3723:11;:43;;;;3787:23;3797:12;3787:5;;:9;;:23;;;;:::i;:::-;3779:5;:31;;;;3828:9;3823:381;3847:12;3843:1;:16;3823:381;;;4017:13;4025:4;;4017:3;:7;;:13;;;;:::i;:::-;3990:10;:24;4001:12;4011:1;4001:5;;:9;;:12;;;;:::i;:::-;3990:24;;;;;;;;;;;:40;;;;4067:5;4045;:19;4051:12;4061:1;4051:5;;:9;;:12;;;;:::i;:::-;4045:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4119:1;4087:15;:29;4103:12;4113:1;4103:5;;:9;;:12;;;;:::i;:::-;4087:29;;;;;;;;;;;:33;;;;4156:36;4179:12;4156:11;:18;4168:5;4156:18;;;;;;;;;;;;;;;;:22;;:36;;;;:::i;:::-;4135:11;:18;4147:5;4135:18;;;;;;;;;;;;;;;:57;;;;3861:3;;;;;;;3823:381;;;;4228:175;4288:104;4346:31;4364:12;4346:13;;:17;;:31;;;;:::i;:::-;4289:33;4318:3;4289:24;4302:10;;4289:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;4288:39;;:104;;;;:::i;:::-;4228:41;4242:26;4255:12;4242:8;;:12;;:26;;;;:::i;:::-;4228:9;;:13;;:41;;;;:::i;:::-;:45;;:175;;;;:::i;:::-;4216:9;:187;;;;4421:31;4432:5;4439:12;4421:31;;;;;;;;;;;;;;;;;;;;;;;;;;3057:1403:::0;;:::o;14610:110::-;14670:7;14697:15;;14690:22;;14610:110;:::o;1074:114:3:-;782:5;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;1151:5:::1;::::0;::::1;;;;;;;;1132:25;;;;;;;;;;;;1180:1;1164:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;1074:114::o:0;4676:2019:0:-;4775:1;4759:6;:13;:17;4751:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4863:9;;4846:6;:13;:26;;4824:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5019:22;5030:10;5019;:22::i;:::-;5002:6;:13;:39;;4980:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5174:17;5206:29;5250:16;5288:9;5283:1352;5307:6;:13;5303:1;:17;5283:1352;;;5384:10;5364:30;;:5;:16;5370:6;5377:1;5370:9;;;;;;;;;;;;;;5364:16;;;;;;;;;;;;;;;;;;;;;:30;;;;:94;;;;5445:13;;5415:15;:26;5431:6;5438:1;5431:9;;;;;;;;;;;;;;5415:26;;;;;;;;;;;;:43;5364:94;5342:140;;;5474:8;;5342:140;5511:31;5537:4;;5511:10;:21;5522:6;5529:1;5522:9;;;;;;;;;;;;;;5511:21;;;;;;;;;;;;:25;;:31;;;;:::i;:::-;5499:43;;5583:94;5615:47;5646:15;;5615;:26;5631:6;5638:1;5631:9;;;;;;;;;;;;;;5615:26;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;5583:9;:13;;:94;;;;:::i;:::-;5559:118;;5779:10;:21;5790:6;5797:1;5790:9;;;;;;;;;;;;;;5779:21;;;;;;;;;;;;5716:42;5742:15;;5716:21;:25;;:42;;;;:::i;:::-;:84;;:153;;;;5827:42;5853:15;;5827:21;:25;;:42;;;;:::i;:::-;5821:3;:48;5716:153;5694:199;;;5885:8;;5694:199;5921:53;5958:15;;5922:30;5930:21;5922:3;:7;;:30;;;;:::i;:::-;5921:36;;:53;;;;:::i;:::-;5910:64;;6007:1;5995:8;:13;5991:27;;;6010:8;;5991:27;6064:72;6113:8;6064:15;:26;6080:6;6087:1;6080:9;;;;;;;;;;;;;;6064:26;;;;;;;;;;;;:30;;:72;;;;:::i;:::-;6035:15;:26;6051:6;6058:1;6051:9;;;;;;;;;;;;;;6035:26;;;;;;;;;;;:101;;;;6153:179;6180:108;6215:54;6249:18;6265:1;6249:11;;:15;;:18;;;;:::i;:::-;6244:2;:24;6215;6228:10;;6215:8;;:12;;:24;;;;:::i;:::-;:28;;:54;;;;:::i;:::-;6180:8;:12;;:108;;;;:::i;:::-;6307:10;6153:8;:179::i;:::-;6383:13;;6353:15;:26;6369:6;6376:1;6369:9;;;;;;;;;;;;;;6353:26;;;;;;;;;;;;:43;6349:275;;;6444:1;6417:5;:16;6423:6;6430:1;6423:9;;;;;;;;;;;;;;6417:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;6489:1;6465:10;:21;6476:6;6483:1;6476:9;;;;;;;;;;;;;;6465:21;;;;;;;;;;;:25;;;;6509:11;:23;6521:10;6509:23;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;6555:53;6564:31;6582:11;;6578:2;:15;6564:8;;:12;;:31;;;;:::i;:::-;6597:10;6555:8;:53::i;:::-;6349:275;5283:1352;5322:3;;;;;;;5283:1352;;;;6668:10;6652:35;;;6680:6;6652:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4676:2019;;;;:::o;14228:101::-;14283:7;14310:11;;14303:18;;14228:101;:::o;12251:116::-;12316:7;12343:10;:16;12354:4;12343:16;;;;;;;;;;;;12336:23;;12251:116;;;:::o;279:20:3:-;;;;;;;;;;;;:::o;11364:169:0:-;11472:7;11504:15;:21;11520:4;11504:21;;;;;;;;;;;;11497:28;;11364:169;;;:::o;14052:98::-;14106:7;14133:9;;14126:16;;14052:98;:::o;10636:112::-;10702:7;10729:5;:11;10735:4;10729:11;;;;;;;;;;;;;;;;;;;;;10722:18;;10636:112;;;:::o;12715:100::-;12770:7;12797:10;;12790:17;;12715:100;:::o;14391:90::-;14441:7;14468:5;;14461:12;;14391:90;:::o;12890:96::-;12943:7;12970:8;;12963:15;;12890:96;:::o;2675:187::-;782:5:3;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;2778:1:0::1;2765:10;:14;2757:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2844:10;2832:9;:22;;;;2675:187:::0;:::o;13530:102::-;13586:7;13613:11;;13606:18;;13530:102;:::o;11842:106::-;11900:7;11927:13;;11920:20;;11842:106;:::o;1356:105:3:-;782:5;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;1426:29:::1;1445:9;1426:18;:29::i;:::-;1356:105:::0;:::o;13271:114:0:-;13334:7;13361:11;:16;13373:3;13361:16;;;;;;;;;;;;;;;;13354:23;;13271:114;;;:::o;8983:238::-;782:5:3;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;9063:9:0::1;;9051;:21;9043:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9204:9;9191;;:22;;;;;;;;;;;8983:238::o:0;725:288:2:-;785:7;1005:2;1000;:7;;;;;;993:14;;725:288;;;;:::o;1130:119::-;1190:7;1219:2;1213;:8;;1206:16;;;;1241:2;1236;:7;1229:14;;1130:119;;;;:::o;247:391::-;307:9;543:1;537:2;:7;533:38;;;562:1;555:8;;;;533:38;588:2;583;:7;579:11;;614:2;608;604:1;:6;;;;;;:12;597:20;;;;247:391;;;;;:::o;1316:132::-;1376:9;1403:2;1398;:7;1394:11;;1424:2;1419:1;:7;;1412:15;;;;1316:132;;;;:::o;9679:322:0:-;9919:8;:17;;:25;9937:6;9919:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9967:21;9981:6;9967:9;;:13;;:21;;;;:::i;:::-;9955:9;:33;;;;9679:322;;:::o;1602:175:3:-;1694:1;1673:23;;:9;:23;;;;1665:32;;;;;;1737:9;1709:38;;1730:5;;;;;;;;;;1709:38;;;;;;;;;;;;1762:9;1754:5;;:17;;;;;;;;;;;;;;;;;;1602:175;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1839800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "198",
"changeLoopLimit(uint256)": "infinite",
"getBalance(address)": "1284",
"getBondOwner(uint256)": "1287",
"getCap()": "1081",
"getCouponRate()": "1102",
"getCouponThreshold()": "1058",
"getCouponsRedeemed(uint256)": "1268",
"getLastTimeRedeemed(uint256)": "infinite",
"getMaturity(uint256)": "1224",
"getName()": "infinite",
"getNonce()": "1124",
"getParDecimals()": "1102",
"getParValue()": "1058",
"getRemainingCoupons(uint256)": "3095",
"getSimpleInterest()": "infinite",
"getTerm()": "1104",
"getTimesToRedeem()": "1057",
"getTotalBonds()": "1124",
"getTotalDebt()": "1103",
"getTotalOwed()": "1058",
"mintBond(address,uint256)": "infinite",
"owner()": "1112",
"payTotalDebt()": "infinite",
"redeemCoupons(uint256[])": "infinite",
"renounceOwnership()": "23939",
"transfer(address,uint256[])": "infinite",
"transferOwnership(address)": "24479",
"updateTotalOwed(uint256)": "infinite"
},
"internal": {
"getMoney(uint256,address payable)": "infinite"
}
},
"methodIdentifiers": {
"changeLoopLimit(uint256)": "d87f0afc",
"getBalance(address)": "f8b2cb4f",
"getBondOwner(uint256)": "bb305ef2",
"getCap()": "554d578d",
"getCouponRate()": "cb57b0a5",
"getCouponThreshold()": "70843ae9",
"getCouponsRedeemed(uint256)": "95be1f1a",
"getLastTimeRedeemed(uint256)": "0f0044bf",
"getMaturity(uint256)": "7f1e7d41",
"getName()": "17d7de7c",
"getNonce()": "d087d288",
"getParDecimals()": "e0e09e0f",
"getParValue()": "d561bf53",
"getRemainingCoupons(uint256)": "43b07485",
"getSimpleInterest()": "112f84e1",
"getTerm()": "124b65b4",
"getTimesToRedeem()": "e5759436",
"getTotalBonds()": "7aafdeee",
"getTotalDebt()": "34ce998a",
"getTotalOwed()": "95c8cbc9",
"mintBond(address,uint256)": "66e3d5ac",
"owner()": "8da5cb5b",
"payTotalDebt()": "ff214cbf",
"redeemCoupons(uint256[])": "7a36c307",
"renounceOwnership()": "715018a6",
"transfer(address,uint256[])": "2b4e4e96",
"transferOwnership(address)": "f2fde38b",
"updateTotalOwed(uint256)": "39dc486a"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_par",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_parDecimals",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_coupon",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_term",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_cap",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_timesToRedeem",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_loopLimit",
"type": "uint256"
},
{
"internalType": "address",
"name": "_oracle",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountClaimed",
"type": "uint256"
}
],
"name": "ClaimedPar",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bondsAmount",
"type": "uint256"
}
],
"name": "MintedBond",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "bonds",
"type": "uint256[]"
}
],
"name": "RedeemedCoupons",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "totalOwed",
"type": "uint256"
}
],
"name": "TotalOwedUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "bonds",
"type": "uint256[]"
}
],
"name": "Transferred",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_loopLimit",
"type": "uint256"
}
],
"name": "changeLoopLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address"
}
],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getBondOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCouponRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCouponThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getCouponsRedeemed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getLastTimeRedeemed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getMaturity",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParDecimals",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParValue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getRemainingCoupons",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getSimpleInterest",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTerm",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTimesToRedeem",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalBonds",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalDebt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalOwed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"internalType": "uint256",
"name": "_bondsAmount",
"type": "uint256"
}
],
"name": "mintBond",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "payTotalDebt",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "redeemCoupons",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "transfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "noxMeasurement",
"type": "uint256"
}
],
"name": "updateTotalOwed",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_par",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_parDecimals",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_coupon",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_term",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_cap",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_timesToRedeem",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_loopLimit",
"type": "uint256"
},
{
"internalType": "address",
"name": "_oracle",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountClaimed",
"type": "uint256"
}
],
"name": "ClaimedPar",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bondsAmount",
"type": "uint256"
}
],
"name": "MintedBond",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "bonds",
"type": "uint256[]"
}
],
"name": "RedeemedCoupons",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "totalOwed",
"type": "uint256"
}
],
"name": "TotalOwedUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "bonds",
"type": "uint256[]"
}
],
"name": "Transferred",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_loopLimit",
"type": "uint256"
}
],
"name": "changeLoopLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address"
}
],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getBondOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCouponRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCouponThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getCouponsRedeemed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getLastTimeRedeemed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getMaturity",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParDecimals",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParValue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getRemainingCoupons",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getSimpleInterest",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTerm",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTimesToRedeem",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalBonds",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalDebt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalOwed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"internalType": "uint256",
"name": "_bondsAmount",
"type": "uint256"
}
],
"name": "mintBond",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "payTotalDebt",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "redeemCoupons",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "transfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "noxMeasurement",
"type": "uint256"
}
],
"name": "updateTotalOwed",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"changeLoopLimit(uint256)": {
"params": {
"_loopLimit": "The new loop limit"
}
},
"constructor": {
"params": {
"_cap": "The new loop limi",
"_coupon": "The new loop limi",
"_loopLimit": "The new loop limi´",
"_oracle": "The new loop limi",
"_par": "The new loop limi",
"_parDecimals": "The new loop limi",
"_term": "The new loop limi",
"_timesToRedeem": "The new loop limi"
}
},
"getBalance(address)": {
"details": "Get amount of bonds that an address has",
"params": {
"who": "The address to analyze"
}
},
"getBondOwner(uint256)": {
"details": "Get the owner of a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getCap()": {
"details": "Get the cap amount for these bonds"
},
"getCouponRate()": {
"details": "Get the yield of a bond"
},
"getCouponThreshold()": {
"details": "Get the amount of time that needs to pass between the dates when you can redeem coupons"
},
"getCouponsRedeemed(uint256)": {
"details": "Get how many coupons were redeemed for a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getLastTimeRedeemed(uint256)": {
"details": "Get the last time coupons for a particular bond were redeemed",
"params": {
"bond": "The bond id to analyze"
}
},
"getMaturity(uint256)": {
"details": "Get the maturity date for a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getName()": {
"details": "Get the name of this smart bond contract"
},
"getNonce()": {
"details": "Get the latest nonce"
},
"getParDecimals()": {
"details": "If the par value is a real number, it might have decimals. Get the amount of decimals the par value has"
},
"getParValue()": {
"details": "Get the par value for these bonds"
},
"getRemainingCoupons(uint256)": {
"details": "Get how many coupons remain to be redeemed for a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getSimpleInterest()": {
"details": "Get how much money is redeemed on a coupon"
},
"getTerm()": {
"details": "Get how much time it takes for a bond to mature"
},
"getTimesToRedeem()": {
"details": "Get how many times coupons can be redeemed for bonds"
},
"getTotalBonds()": {
"details": "Get the total amount of bonds issued"
},
"getTotalDebt()": {
"details": "Get the current unpaid debt"
},
"getTotalOwed()": {
"details": "Get total debt owed by borrower"
},
"mintBond(address,uint256)": {
"params": {
"_bondsAmount": "How many bonds to mint",
"buyer": "The buyer of the bonds"
}
},
"redeemCoupons(uint256[])": {
"params": {
"_bonds": "An array of bond ids corresponding to the bonds you want to redeem apon"
}
},
"renounceOwnership()": {
"details": "Allows the current owner to relinquish control of the contract."
},
"transfer(address,uint256[])": {
"params": {
"_bonds": "The ids of the bonds that you want to transfer",
"receiver": "The receiver of the bonds"
}
},
"transferOwnership(address)": {
"details": "Allows the current owner to transfer control of the contract to a newOwner.",
"params": {
"_newOwner": "The address to transfer ownership to."
}
},
"updateTotalOwed(uint256)": {
"params": {
"noxMeasurement": "The amount in wei the borrower has to pay. Calculated by the oracle from the DEFRA NOx data of London"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"changeLoopLimit(uint256)": {
"notice": "Change the number of elements you can loop through in this contract"
},
"constructor": "Constructor - address _tokenToRedeem add this in the future if we want settlements in ERC20,",
"mintBond(address,uint256)": {
"notice": "Mint bonds to a new buyer"
},
"redeemCoupons(uint256[])": {
"notice": "Redeem coupons on your bonds"
},
"renounceOwnership()": {
"notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore."
},
"transfer(address,uint256[])": {
"notice": "Transfer bonds to another address"
},
"updateTotalOwed(uint256)": {
"notice": "Update the total debt the borrower must pay to service the bond each interval"
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/SimpleBond.sol": "SmartGreenBond"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/SimpleBond.sol": {
"keccak256": "0x81e406f8c15e05e5d8aad68f97351b438b5b99c942b84cb4da6bc0d602341481",
"license": "GPL",
"urls": [
"bzz-raw://cf4d4161109d9fa54de6eb129a3a7de5f86eed583031ccc9b8c610cbb81fa799",
"dweb:/ipfs/QmQFqd4yMaTzWALGXMesU2JdaEoUyXtkLz86SyPJrh9xLf"
]
},
"contracts/interfaces/ISimpleBond.sol": {
"keccak256": "0x9fc83a9528f9948be4004f81762e81084b7f231738c243c77ea571a754529750",
"license": "GPL",
"urls": [
"bzz-raw://169b5c1c9e18c7af48b9a2281ee6f73f4d5453f5f6a518562d8044c617f1a0ce",
"dweb:/ipfs/QmTXZsd1uD4mvcu3ztnmpxWjUB1Djsun8xkNx6FgLgKjq8"
]
},
"contracts/zeppelin/SafeMath.sol": {
"keccak256": "0xda5e84e659c8046a20b43a08b1caa215eb2259fa6dc698e11934cf90b03ef783",
"license": "GPL",
"urls": [
"bzz-raw://7dbe2056892556536f21fc68bcfc5136ae0d25c4fbcc7f93a87c8df06669ae85",
"dweb:/ipfs/Qmbo2vwEAZZupVnarMTrtwv2WRWb8iYELuKwpDaqKAQnzm"
]
},
"contracts/zeppelin/ownership/Ownable.sol": {
"keccak256": "0xd96026be0b4d0076b4220e533ebed6707c2fd3c65b42e1b789be49bdbfe7df79",
"license": "GPL",
"urls": [
"bzz-raw://5417de49ba30df39e3828f55458db3454e40d2d02471f9a294291bd0dc5da87b",
"dweb:/ipfs/QmNzW3qMZRLN67M3aoja9j7mfmz5JLYGpwKPUB8t2vrchr"
]
}
},
"version": 1
}
// SPDX-License-Identifier: GPL
pragma solidity ^0.8.21;
interface ISimpleBond {
event MintedBond(address buyer, uint256 bondsAmount);
event RedeemedCoupons(address indexed caller, uint256[] bonds);
event ClaimedPar(address indexed caller, uint256 amountClaimed);
event Transferred(address indexed from, address indexed to, uint256[] bonds);
function changeLoopLimit(uint256 _loopLimit) external;
function mintBond(address buyer, uint256 bondsAmount) external;
function redeemCoupons(uint256[] memory _bonds ) external;
function transfer(address receiver, uint256[] memory bonds) external;
// function donate() external payable;
//GETTERS
function getBondOwner(uint256 bond) external view returns (address);
function getRemainingCoupons(uint256 bond) external view returns (int256);
function getLastTimeRedeemed(uint256 bond) external view returns (uint256);
function getSimpleInterest() external view returns (uint256);
function getCouponsRedeemed(uint256 bond) external view returns (uint256);
// function getTokenAddress() external view returns (address);
function getTimesToRedeem() external view returns (uint256);
function getTerm() external view returns (uint256);
function getMaturity(uint256 bond) external view returns (uint256);
function getCouponRate() external view returns (uint256);
function getParValue() external view returns (uint256);
function getCap() external view returns (uint256);
function getBalance(address who) external view returns (uint256);
function getParDecimals() external view returns (uint256);
// function getTokenToRedeem() external view returns (address);
function getName() external view returns (string memory);
function getTotalDebt() external view returns (uint256);
function getTotalOwed() external view returns (uint256);
function getTotalBonds() external view returns (uint256);
function getNonce() external view returns (uint256);
function getCouponThreshold() external view returns (uint256);
}
// SPDX-License-Identifier: GPL
pragma solidity >=0.4.21 <0.7.0;
contract Migrations {
address public owner;
uint public last_completed_migration;
modifier restricted() {
if (msg.sender == owner) _;
}
constructor() public {
owner = msg.sender;
}
function setCompleted(uint completed) public restricted {
last_completed_migration = completed;
}
}
// SPDX-License-Identifier: GPL
pragma solidity 0.6.12;
import "contracts/zeppelin/ownership/Ownable.sol";
import "contracts/zeppelin/SafeMath.sol";
import "contracts/interfaces/ISimpleBond.sol";
contract SmartGreenBond is ISimpleBond, Ownable {
using SafeMath for uint256;
string name;
uint256 totalDebt; // running tally of total owed to investors?
uint256 totalOwed; // by the borrower to service the bond each interval -> coupons + variable payment.
uint256 parDecimals;
uint256 bondsNumber;
uint256 cap;
uint256 parValue;
uint256 couponRate;
uint256 term;
uint256 timesToRedeem;
uint256 loopLimit;
uint256 nonce = 0;
uint256 couponThreshold = 0;
address oracle;
uint256 intervalCount = 0;
mapping(uint256 => address) bonds;
mapping(uint256 => uint256) maturities;
mapping(uint256 => uint256) couponsRedeemed;
mapping(address => uint256) bondsAmount;
uint256[] noxHistory;
event TotalOwedUpdated(uint256 totalOwed);
/**
* @notice Constructor - address _tokenToRedeem add this in the future if we want settlements in ERC20,
* @param _par The new loop limi
* @param _parDecimals The new loop limi
* @param _coupon The new loop limi
* @param _term The new loop limi
* @param _cap The new loop limi
* @param _timesToRedeem The new loop limi
* @param _loopLimit The new loop limi´
* @param _oracle The new loop limi
*/
constructor(
string memory _name,
uint256 _par,
uint256 _parDecimals,
uint256 _coupon,
uint256 _term,
uint256 _cap,
uint256 _timesToRedeem,
uint256 _loopLimit,
address _oracle
) ISimpleBond() public {
require(bytes(_name).length > 0, "Empty name provided");
require(_coupon > 0, "Coupon rate lower than or equal 0 ");
require(_par > 0, "Par lower than or equal 0");
require(_term > 0, "Term lower than or equal 0");
require(_loopLimit > 0, "Loop limit lower than or equal 0");
require(_timesToRedeem > 0, "Times to redeem lower or equal to 0");
name = _name;
parValue = _par;
cap = _cap;
loopLimit = _loopLimit;
parDecimals = _parDecimals;
timesToRedeem = _timesToRedeem;
couponRate = _coupon;
term = _term;
couponThreshold = term.div(timesToRedeem);
oracle = _oracle;
}
/**
* @notice Change the number of elements you can loop through in this contract
* @param _loopLimit The new loop limit
*/
function changeLoopLimit(uint256 _loopLimit) public override onlyOwner {
require(_loopLimit > 0, "Loop limit lower than or equal to 0");
loopLimit = _loopLimit;
}
/**
* @notice Mint bonds to a new buyer
* @param buyer The buyer of the bonds
* @param _bondsAmount How many bonds to mint
*/
// Add payable function ()
function mintBond(address buyer, uint256 _bondsAmount)
public
override
onlyOwner
{
require(buyer != address(0), "Buyer can't be address null");
require(
_bondsAmount > 0,
"Amount of bonds to mint must be higher than 0"
);
require(
_bondsAmount <= loopLimit,
"Amount of bonds to mint must be lower than the loop limit"
);
if (cap > 0) {
require(
bondsNumber.add(_bondsAmount) <= cap,
"Total amount of bonds must be lower or equal to the cap"
);
}
bondsNumber = bondsNumber.add(_bondsAmount);
nonce = nonce.add(_bondsAmount);
for (uint256 i = 0; i < _bondsAmount; i++) {
// WARNING: we should consider switching 'now' for the 'block.number', this is insecure - João
maturities[nonce.sub(i)] = now.add(term);
bonds[nonce.sub(i)] = buyer;
couponsRedeemed[nonce.sub(i)] = 0;
bondsAmount[buyer] = bondsAmount[buyer].add(_bondsAmount);
}
totalDebt = totalDebt.add(parValue.mul(_bondsAmount)).add(
(parValue.mul(couponRate).div(100)).mul(
timesToRedeem.mul(_bondsAmount)
)
);
emit MintedBond(buyer, _bondsAmount);
}
/**
* @notice Redeem coupons on your bonds
* @param _bonds An array of bond ids corresponding to the bonds you want to redeem apon
*/
// maybe add onlyOwner and automate off-chain
function redeemCoupons(uint256[] memory _bonds) public override {
require(_bonds.length > 0, "Array of bonds must not be empty");
require(
_bonds.length <= loopLimit,
"Array of bonds must have a number of bonds lower than the looop limit"
);
require(
_bonds.length <= getBalance(msg.sender),
"Array of bonds must have a number of bonds lower than the balance of the bonds of the sender"
);
uint256 issueDate = 0;
uint256 lastThresholdRedeemed = 0;
uint256 toRedeem = 0;
for (uint256 i = 0; i < _bonds.length; i++) {
if (
bonds[_bonds[i]] != msg.sender ||
couponsRedeemed[_bonds[i]] == timesToRedeem
) continue;
issueDate = maturities[_bonds[i]].sub(term);
lastThresholdRedeemed = issueDate.add(
couponsRedeemed[_bonds[i]].mul(couponThreshold)
);
if (
lastThresholdRedeemed.add(couponThreshold) >=
maturities[_bonds[i]] ||
now < lastThresholdRedeemed.add(couponThreshold)
) continue;
toRedeem = (now.sub(lastThresholdRedeemed)).div(couponThreshold);
if (toRedeem == 0) continue;
couponsRedeemed[_bonds[i]] = couponsRedeemed[_bonds[i]].add(
toRedeem
);
getMoney(
toRedeem.mul(
parValue.mul(couponRate).div(10**(parDecimals.add(2)))
),
msg.sender
);
if (couponsRedeemed[_bonds[i]] == timesToRedeem) {
bonds[_bonds[i]] = address(0);
maturities[_bonds[i]] = 0;
bondsAmount[msg.sender]--;
getMoney(parValue.div((10**parDecimals)), msg.sender);
}
}
emit RedeemedCoupons(msg.sender, _bonds);
}
/**
* @notice Transfer bonds to another address
* @param receiver The receiver of the bonds
* @param _bonds The ids of the bonds that you want to transfer
*/
function transfer(address receiver, uint256[] memory _bonds)
public
override
{
require(_bonds.length > 0, "Array of bonds must not be empty");
require(receiver != address(0), "Receiver can't be address null");
require(
_bonds.length <= getBalance(msg.sender),
"Array of bonds must have a number of bonds lower than the balance of the bonds of the sender"
);
for (uint256 i = 0; i < _bonds.length; i++) {
if (
bonds[_bonds[i]] != msg.sender ||
couponsRedeemed[_bonds[i]] == timesToRedeem
) continue;
bonds[_bonds[i]] = receiver;
bondsAmount[msg.sender] = bondsAmount[msg.sender].sub(1);
bondsAmount[receiver] = bondsAmount[receiver].add(1);
}
emit Transferred(msg.sender, receiver, _bonds);
}
modifier onlyOracle() {
require(msg.sender == oracle, "Only the oracle is authorized to call this function.");
_;
}
/**
* @notice Update the total debt the borrower must pay to service the bond each interval
* @param noxMeasurement The amount in wei the borrower has to pay. Calculated by the oracle
* from the DEFRA NOx data of London
*/
function updateTotalOwed(uint256 noxMeasurement) public onlyOracle { // called every 1 year by an off-chain oracle EOA
// example noxMeasurement: 44410000000000000000 i.e. 44.41 ether in wei. i.e. 44.41 * 10e18
// Check to make sure that oracle update is due?
// other checks on the input value?
// We could have a range of possible values (from 0 to max variable payment) to reduce risks
// Add NOx measurement to array so we have a record
noxHistory.push(noxMeasurement);
// Calculate penalty and add to total coupons for that year
totalOwed += noxMeasurement.mul(2).add(bondsNumber.mul(parValue).mul(couponRate).div(100));
emit TotalOwedUpdated(totalOwed);
}
function payTotalDebt() public payable onlyOwner {
require(msg.value < totalDebt, "Transaction amount is higher than total owed");
// add requirement that msg.value is == totalDebt
totalDebt -= msg.value;
}
/**
* @notice Donate money to this contract
*/
// function donate() public override payable {
// require(address(token) == address(0));
// }
receive() external payable {}
fallback() external payable {}
/**
* @notice Transfer coupon money to an address
* @param amount The amount of money to be transferred
* @param receiver The address which will receive the money
*/
function getMoney(uint256 amount, address payable receiver) private {
// if (address(token) == address(0))
// receiver.transfer(amount);
// else
// ERC20(token).transfer(msg.sender, amount);
receiver.transfer(amount);
totalDebt = totalDebt.sub(amount); // ?
}
//GETTERS
/**
* @dev Get the last time coupons for a particular bond were redeemed
* @param bond The bond id to analyze
*/
function getLastTimeRedeemed(uint256 bond)
public
override
view
returns (uint256)
{
uint256 issueDate = maturities[bond].sub(term);
uint256 lastThresholdRedeemed = issueDate.add(
couponsRedeemed[bond].mul(couponThreshold)
);
return lastThresholdRedeemed;
}
/**
* @dev Get the owner of a specific bond
* @param bond The bond id to analyze
*/
function getBondOwner(uint256 bond) public override view returns (address) {
return bonds[bond];
}
/**
* @dev Get how many coupons remain to be redeemed for a specific bond
* @param bond The bond id to analyze
*/
function getRemainingCoupons(uint256 bond)
public
override
view
returns (int256)
{
address owner = getBondOwner(bond);
if (owner == address(0)) return -1;
uint256 redeemed = getCouponsRedeemed(bond);
return int256(timesToRedeem - redeemed);
}
/**
* @dev Get how many coupons were redeemed for a specific bond
* @param bond The bond id to analyze
*/
function getCouponsRedeemed(uint256 bond)
public
override
view
returns (uint256)
{
return couponsRedeemed[bond];
}
/**
* @dev Get the address of the token that is redeemed for coupons
*/
//
// function getTokenAddress() public override view returns (address) {
// return (address(token));
// }
/**
* @dev Get how many times coupons can be redeemed for bonds
*/
function getTimesToRedeem() public override view returns (uint256) {
return timesToRedeem;
}
/**
* @dev Get how much time it takes for a bond to mature
*/
function getTerm() public override view returns (uint256) {
return term;
}
/**
* @dev Get the maturity date for a specific bond
* @param bond The bond id to analyze
*/
function getMaturity(uint256 bond) public override view returns (uint256) {
return maturities[bond];
}
/**
* @dev Get how much money is redeemed on a coupon
*/
function getSimpleInterest() public override view returns (uint256) {
uint256 rate = getCouponRate();
uint256 par = getParValue();
return par.mul(rate).div(100);
}
/**
* @dev Get the yield of a bond
*/
function getCouponRate() public override view returns (uint256) {
return couponRate;
}
/**
* @dev Get the par value for these bonds
*/
function getParValue() public override view returns (uint256) {
return parValue;
}
/**
* @dev Get the cap amount for these bonds
*/
function getCap() public override view returns (uint256) {
return cap;
}
/**
* @dev Get amount of bonds that an address has
* @param who The address to analyze
*/
function getBalance(address who) public override view returns (uint256) {
return bondsAmount[who];
}
/**
* @dev If the par value is a real number, it might have decimals. Get the amount of decimals the par value has
*/
function getParDecimals() public override view returns (uint256) {
return parDecimals;
}
/**
* @dev Get the name of this smart bond contract
*/
function getName() public override view returns (string memory) {
return name;
}
/**
* @dev Get the current unpaid debt
*/
function getTotalDebt() public override view returns (uint256) {
return totalDebt;
}
/**
* @dev Get total debt owed by borrower
*/
function getTotalOwed() public override view returns (uint256) {
return totalOwed;
}
/**
* @dev Get the total amount of bonds issued
*/
function getTotalBonds() public override view returns (uint256) {
return bondsNumber;
}
/**
* @dev Get the latest nonce
*/
function getNonce() public override view returns (uint256) {
return nonce;
}
/**
* @dev Get the amount of time that needs to pass between the dates when you can redeem coupons
*/
function getCouponThreshold() public override view returns (uint256) {
return couponThreshold;
}
}
This file has been truncated, but you can view the full file.
{
"id": "105460fe2dc42046b31f10def2a2fa4f",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.6.12",
"solcLongVersion": "0.6.12+commit.27d51765",
"input": {
"language": "Solidity",
"sources": {
"contracts/SimpleBond.sol": {
"content": "// SPDX-License-Identifier: GPL\r\npragma solidity 0.6.12;\r\n\r\n\r\nimport \"contracts/zeppelin/ownership/Ownable.sol\";\r\nimport \"contracts/zeppelin/SafeMath.sol\";\r\nimport \"contracts/interfaces/ISimpleBond.sol\";\r\n\r\ncontract SmartGreenBond is ISimpleBond, Ownable {\r\n using SafeMath for uint256;\r\n\r\n string name;\r\n uint256 totalDebt; // running tally of total owed to investors?\r\n uint256 totalOwed; // by the borrower to service the bond each interval -> coupons + variable payment.\r\n uint256 parDecimals;\r\n uint256 bondsNumber;\r\n uint256 cap;\r\n uint256 parValue;\r\n uint256 couponRate;\r\n uint256 term;\r\n uint256 timesToRedeem;\r\n uint256 loopLimit;\r\n uint256 nonce = 0;\r\n uint256 couponThreshold = 0;\r\n address oracle;\r\n uint256 intervalCount = 0;\r\n\r\n mapping(uint256 => address) bonds;\r\n mapping(uint256 => uint256) maturities;\r\n mapping(uint256 => uint256) couponsRedeemed;\r\n mapping(address => uint256) bondsAmount;\r\n\r\n uint256[] noxHistory;\r\n\r\n event TotalOwedUpdated(uint256 totalOwed);\r\n\r\n /**\r\n * @notice Constructor - address _tokenToRedeem add this in the future if we want settlements in ERC20,\r\n * @param _par The new loop limi\r\n * @param _parDecimals The new loop limi\r\n * @param _coupon The new loop limi\r\n * @param _term The new loop limi\r\n * @param _cap The new loop limi\r\n * @param _timesToRedeem The new loop limi\r\n * @param _loopLimit The new loop limi´\r\n * @param _oracle The new loop limi\r\n */\r\n constructor(\r\n string memory _name,\r\n uint256 _par,\r\n uint256 _parDecimals,\r\n uint256 _coupon,\r\n uint256 _term,\r\n uint256 _cap,\r\n uint256 _timesToRedeem,\r\n uint256 _loopLimit,\r\n address _oracle\r\n ) ISimpleBond() public {\r\n require(bytes(_name).length > 0, \"Empty name provided\");\r\n require(_coupon > 0, \"Coupon rate lower than or equal 0 \");\r\n require(_par > 0, \"Par lower than or equal 0\");\r\n require(_term > 0, \"Term lower than or equal 0\");\r\n require(_loopLimit > 0, \"Loop limit lower than or equal 0\");\r\n require(_timesToRedeem > 0, \"Times to redeem lower or equal to 0\");\r\n\r\n name = _name;\r\n parValue = _par;\r\n cap = _cap;\r\n loopLimit = _loopLimit;\r\n parDecimals = _parDecimals;\r\n timesToRedeem = _timesToRedeem;\r\n couponRate = _coupon;\r\n term = _term;\r\n couponThreshold = term.div(timesToRedeem);\r\n oracle = _oracle;\r\n }\r\n\r\n /**\r\n * @notice Change the number of elements you can loop through in this contract\r\n * @param _loopLimit The new loop limit\r\n */\r\n\r\n function changeLoopLimit(uint256 _loopLimit) public override onlyOwner {\r\n require(_loopLimit > 0, \"Loop limit lower than or equal to 0\");\r\n\r\n loopLimit = _loopLimit;\r\n }\r\n\r\n /**\r\n * @notice Mint bonds to a new buyer\r\n * @param buyer The buyer of the bonds\r\n * @param _bondsAmount How many bonds to mint\r\n */\r\n // Add payable function ()\r\n function mintBond(address buyer, uint256 _bondsAmount)\r\n public\r\n override\r\n onlyOwner\r\n {\r\n require(buyer != address(0), \"Buyer can't be address null\");\r\n require(\r\n _bondsAmount > 0,\r\n \"Amount of bonds to mint must be higher than 0\"\r\n );\r\n require(\r\n _bondsAmount <= loopLimit,\r\n \"Amount of bonds to mint must be lower than the loop limit\"\r\n );\r\n\r\n if (cap > 0) {\r\n require(\r\n bondsNumber.add(_bondsAmount) <= cap,\r\n \"Total amount of bonds must be lower or equal to the cap\"\r\n );\r\n }\r\n\r\n bondsNumber = bondsNumber.add(_bondsAmount);\r\n\r\n nonce = nonce.add(_bondsAmount);\r\n\r\n for (uint256 i = 0; i < _bondsAmount; i++) {\r\n // WARNING: we should consider switching 'now' for the 'block.number', this is insecure - João\r\n maturities[nonce.sub(i)] = now.add(term);\r\n bonds[nonce.sub(i)] = buyer;\r\n couponsRedeemed[nonce.sub(i)] = 0;\r\n bondsAmount[buyer] = bondsAmount[buyer].add(_bondsAmount);\r\n }\r\n\r\n totalDebt = totalDebt.add(parValue.mul(_bondsAmount)).add(\r\n (parValue.mul(couponRate).div(100)).mul(\r\n timesToRedeem.mul(_bondsAmount)\r\n )\r\n );\r\n\r\n emit MintedBond(buyer, _bondsAmount);\r\n }\r\n\r\n /**\r\n * @notice Redeem coupons on your bonds\r\n * @param _bonds An array of bond ids corresponding to the bonds you want to redeem apon\r\n */\r\n // maybe add onlyOwner and automate off-chain\r\n function redeemCoupons(uint256[] memory _bonds) public override {\r\n require(_bonds.length > 0, \"Array of bonds must not be empty\");\r\n require(\r\n _bonds.length <= loopLimit,\r\n \"Array of bonds must have a number of bonds lower than the looop limit\"\r\n );\r\n require(\r\n _bonds.length <= getBalance(msg.sender),\r\n \"Array of bonds must have a number of bonds lower than the balance of the bonds of the sender\"\r\n );\r\n\r\n uint256 issueDate = 0;\r\n uint256 lastThresholdRedeemed = 0;\r\n uint256 toRedeem = 0;\r\n\r\n for (uint256 i = 0; i < _bonds.length; i++) {\r\n if (\r\n bonds[_bonds[i]] != msg.sender ||\r\n couponsRedeemed[_bonds[i]] == timesToRedeem\r\n ) continue;\r\n\r\n issueDate = maturities[_bonds[i]].sub(term);\r\n\r\n lastThresholdRedeemed = issueDate.add(\r\n couponsRedeemed[_bonds[i]].mul(couponThreshold)\r\n );\r\n\r\n if (\r\n lastThresholdRedeemed.add(couponThreshold) >=\r\n maturities[_bonds[i]] ||\r\n now < lastThresholdRedeemed.add(couponThreshold)\r\n ) continue;\r\n\r\n toRedeem = (now.sub(lastThresholdRedeemed)).div(couponThreshold);\r\n\r\n if (toRedeem == 0) continue;\r\n\r\n couponsRedeemed[_bonds[i]] = couponsRedeemed[_bonds[i]].add(\r\n toRedeem\r\n );\r\n\r\n getMoney(\r\n toRedeem.mul(\r\n parValue.mul(couponRate).div(10**(parDecimals.add(2)))\r\n ),\r\n msg.sender\r\n );\r\n\r\n if (couponsRedeemed[_bonds[i]] == timesToRedeem) {\r\n bonds[_bonds[i]] = address(0);\r\n maturities[_bonds[i]] = 0;\r\n bondsAmount[msg.sender]--;\r\n\r\n getMoney(parValue.div((10**parDecimals)), msg.sender);\r\n }\r\n }\r\n\r\n emit RedeemedCoupons(msg.sender, _bonds);\r\n }\r\n\r\n /**\r\n * @notice Transfer bonds to another address\r\n * @param receiver The receiver of the bonds\r\n * @param _bonds The ids of the bonds that you want to transfer\r\n */\r\n\r\n function transfer(address receiver, uint256[] memory _bonds)\r\n public\r\n override\r\n {\r\n require(_bonds.length > 0, \"Array of bonds must not be empty\");\r\n require(receiver != address(0), \"Receiver can't be address null\");\r\n require(\r\n _bonds.length <= getBalance(msg.sender),\r\n \"Array of bonds must have a number of bonds lower than the balance of the bonds of the sender\"\r\n );\r\n\r\n for (uint256 i = 0; i < _bonds.length; i++) {\r\n if (\r\n bonds[_bonds[i]] != msg.sender ||\r\n couponsRedeemed[_bonds[i]] == timesToRedeem\r\n ) continue;\r\n\r\n bonds[_bonds[i]] = receiver;\r\n bondsAmount[msg.sender] = bondsAmount[msg.sender].sub(1);\r\n bondsAmount[receiver] = bondsAmount[receiver].add(1);\r\n }\r\n\r\n emit Transferred(msg.sender, receiver, _bonds);\r\n }\r\n\r\n modifier onlyOracle() {\r\n require(msg.sender == oracle, \"Only the oracle is authorized to call this function.\");\r\n _;\r\n }\r\n\r\n /**\r\n * @notice Update the total debt the borrower must pay to service the bond each interval\r\n * @param noxMeasurement The amount in wei the borrower has to pay. Calculated by the oracle\r\n * from the DEFRA NOx data of London\r\n */\r\n\r\n function updateTotalOwed(uint256 noxMeasurement) public onlyOracle { // called every 1 year by an off-chain oracle EOA\r\n // example noxMeasurement: 44410000000000000000 i.e. 44.41 ether in wei. i.e. 44.41 * 10e18\r\n\r\n // Check to make sure that oracle update is due?\r\n // other checks on the input value?\r\n // We could have a range of possible values (from 0 to max variable payment) to reduce risks\r\n\r\n // Add NOx measurement to array so we have a record\r\n noxHistory.push(noxMeasurement);\r\n\r\n // Calculate penalty and add to total coupons for that year\r\n totalOwed += noxMeasurement.mul(2).add(bondsNumber.mul(parValue).mul(couponRate).div(100));\r\n\r\n emit TotalOwedUpdated(totalOwed);\r\n\r\n }\r\n\r\n function payTotalDebt() public payable onlyOwner {\r\n require(msg.value < totalDebt, \"Transaction amount is higher than total owed\");\r\n // add requirement that msg.value is == totalDebt\r\n totalDebt -= msg.value;\r\n }\r\n\r\n /**\r\n * @notice Donate money to this contract\r\n */\r\n\r\n// function donate() public override payable {\r\n// require(address(token) == address(0));\r\n// }\r\n\r\n receive() external payable {}\r\n\r\n fallback() external payable {}\r\n\r\n /**\r\n * @notice Transfer coupon money to an address\r\n * @param amount The amount of money to be transferred\r\n * @param receiver The address which will receive the money\r\n */\r\n\r\n function getMoney(uint256 amount, address payable receiver) private {\r\n// if (address(token) == address(0))\r\n// receiver.transfer(amount);\r\n// else\r\n// ERC20(token).transfer(msg.sender, amount);\r\n receiver.transfer(amount);\r\n totalDebt = totalDebt.sub(amount); // ?\r\n }\r\n\r\n //GETTERS\r\n\r\n /**\r\n * @dev Get the last time coupons for a particular bond were redeemed\r\n * @param bond The bond id to analyze\r\n */\r\n\r\n function getLastTimeRedeemed(uint256 bond)\r\n public\r\n override\r\n view\r\n returns (uint256)\r\n {\r\n uint256 issueDate = maturities[bond].sub(term);\r\n\r\n uint256 lastThresholdRedeemed = issueDate.add(\r\n couponsRedeemed[bond].mul(couponThreshold)\r\n );\r\n\r\n return lastThresholdRedeemed;\r\n }\r\n\r\n /**\r\n * @dev Get the owner of a specific bond\r\n * @param bond The bond id to analyze\r\n */\r\n\r\n function getBondOwner(uint256 bond) public override view returns (address) {\r\n return bonds[bond];\r\n }\r\n\r\n /**\r\n * @dev Get how many coupons remain to be redeemed for a specific bond\r\n * @param bond The bond id to analyze\r\n */\r\n\r\n function getRemainingCoupons(uint256 bond)\r\n public\r\n override\r\n view\r\n returns (int256)\r\n {\r\n address owner = getBondOwner(bond);\r\n\r\n if (owner == address(0)) return -1;\r\n\r\n uint256 redeemed = getCouponsRedeemed(bond);\r\n\r\n return int256(timesToRedeem - redeemed);\r\n }\r\n\r\n /**\r\n * @dev Get how many coupons were redeemed for a specific bond\r\n * @param bond The bond id to analyze\r\n */\r\n\r\n function getCouponsRedeemed(uint256 bond)\r\n public\r\n override\r\n view\r\n returns (uint256)\r\n {\r\n return couponsRedeemed[bond];\r\n }\r\n\r\n /**\r\n * @dev Get the address of the token that is redeemed for coupons\r\n */\r\n//\r\n// function getTokenAddress() public override view returns (address) {\r\n// return (address(token));\r\n// }\r\n\r\n /**\r\n * @dev Get how many times coupons can be redeemed for bonds\r\n */\r\n\r\n function getTimesToRedeem() public override view returns (uint256) {\r\n return timesToRedeem;\r\n }\r\n\r\n /**\r\n * @dev Get how much time it takes for a bond to mature\r\n */\r\n\r\n function getTerm() public override view returns (uint256) {\r\n return term;\r\n }\r\n\r\n /**\r\n * @dev Get the maturity date for a specific bond\r\n * @param bond The bond id to analyze\r\n */\r\n\r\n function getMaturity(uint256 bond) public override view returns (uint256) {\r\n return maturities[bond];\r\n }\r\n\r\n /**\r\n * @dev Get how much money is redeemed on a coupon\r\n */\r\n\r\n function getSimpleInterest() public override view returns (uint256) {\r\n uint256 rate = getCouponRate();\r\n\r\n uint256 par = getParValue();\r\n\r\n return par.mul(rate).div(100);\r\n }\r\n\r\n /**\r\n * @dev Get the yield of a bond\r\n */\r\n\r\n function getCouponRate() public override view returns (uint256) {\r\n return couponRate;\r\n }\r\n\r\n /**\r\n * @dev Get the par value for these bonds\r\n */\r\n\r\n function getParValue() public override view returns (uint256) {\r\n return parValue;\r\n }\r\n\r\n /**\r\n * @dev Get the cap amount for these bonds\r\n */\r\n\r\n function getCap() public override view returns (uint256) {\r\n return cap;\r\n }\r\n\r\n /**\r\n * @dev Get amount of bonds that an address has\r\n * @param who The address to analyze\r\n */\r\n\r\n function getBalance(address who) public override view returns (uint256) {\r\n return bondsAmount[who];\r\n }\r\n\r\n /**\r\n * @dev If the par value is a real number, it might have decimals. Get the amount of decimals the par value has\r\n */\r\n\r\n function getParDecimals() public override view returns (uint256) {\r\n return parDecimals;\r\n }\r\n\r\n /**\r\n * @dev Get the name of this smart bond contract\r\n */\r\n\r\n function getName() public override view returns (string memory) {\r\n return name;\r\n }\r\n\r\n /**\r\n * @dev Get the current unpaid debt\r\n */\r\n\r\n function getTotalDebt() public override view returns (uint256) {\r\n return totalDebt;\r\n }\r\n\r\n /**\r\n * @dev Get total debt owed by borrower\r\n */\r\n \r\n function getTotalOwed() public override view returns (uint256) {\r\n return totalOwed;\r\n }\r\n\r\n /**\r\n * @dev Get the total amount of bonds issued\r\n */\r\n\r\n function getTotalBonds() public override view returns (uint256) {\r\n return bondsNumber;\r\n }\r\n\r\n /**\r\n * @dev Get the latest nonce\r\n */\r\n\r\n function getNonce() public override view returns (uint256) {\r\n return nonce;\r\n }\r\n\r\n /**\r\n * @dev Get the amount of time that needs to pass between the dates when you can redeem coupons\r\n */\r\n\r\n function getCouponThreshold() public override view returns (uint256) {\r\n return couponThreshold;\r\n }\r\n}"
},
"contracts/interfaces/ISimpleBond.sol": {
"content": "// SPDX-License-Identifier: GPL\r\npragma solidity 0.6.12;\r\n\r\ninterface ISimpleBond {\r\n\r\n event MintedBond(address buyer, uint256 bondsAmount);\r\n\r\n event RedeemedCoupons(address indexed caller, uint256[] bonds);\r\n\r\n event ClaimedPar(address indexed caller, uint256 amountClaimed);\r\n\r\n event Transferred(address indexed from, address indexed to, uint256[] bonds);\r\n\r\n\r\n function changeLoopLimit(uint256 _loopLimit) external;\r\n\r\n function mintBond(address buyer, uint256 bondsAmount) external;\r\n\r\n function redeemCoupons(uint256[] memory _bonds ) external;\r\n\r\n function transfer(address receiver, uint256[] memory bonds) external;\r\n\r\n// function donate() external payable;\r\n\r\n\r\n //GETTERS\r\n\r\n function getBondOwner(uint256 bond) external view returns (address);\r\n\r\n function getRemainingCoupons(uint256 bond) external view returns (int256);\r\n\r\n function getLastTimeRedeemed(uint256 bond) external view returns (uint256);\r\n\r\n function getSimpleInterest() external view returns (uint256);\r\n\r\n function getCouponsRedeemed(uint256 bond) external view returns (uint256);\r\n\r\n// function getTokenAddress() external view returns (address);\r\n\r\n function getTimesToRedeem() external view returns (uint256);\r\n\r\n function getTerm() external view returns (uint256);\r\n\r\n function getMaturity(uint256 bond) external view returns (uint256);\r\n\r\n function getCouponRate() external view returns (uint256);\r\n\r\n function getParValue() external view returns (uint256);\r\n\r\n function getCap() external view returns (uint256);\r\n\r\n function getBalance(address who) external view returns (uint256);\r\n\r\n function getParDecimals() external view returns (uint256);\r\n\r\n // function getTokenToRedeem() external view returns (address);\r\n\r\n function getName() external view returns (string memory);\r\n\r\n function getTotalDebt() external view returns (uint256);\r\n\r\n function getTotalOwed() external view returns (uint256);\r\n\r\n function getTotalBonds() external view returns (uint256);\r\n\r\n function getNonce() external view returns (uint256);\r\n\r\n function getCouponThreshold() external view returns (uint256);\r\n\r\n}"
},
"contracts/zeppelin/SafeMath.sol": {
"content": "// SPDX-License-Identifier: GPL\r\npragma solidity 0.6.12;\r\n\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\nlibrary SafeMath {\r\n\r\n /**\r\n * @dev Multiplies two numbers, throws on overflow.\r\n */\r\n function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\r\n // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n // benefit is lost if 'b' is also tested.\r\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n if (_a == 0) {\r\n return 0;\r\n }\r\n\r\n c = _a * _b;\r\n assert(c / _a == _b);\r\n return c;\r\n }\r\n\r\n /**\r\n * @dev Integer division of two numbers, truncating the quotient.\r\n */\r\n function div(uint256 _a, uint256 _b) internal pure returns (uint256) {\r\n // assert(_b > 0); // Solidity automatically throws when dividing by 0\r\n // uint256 c = _a / _b;\r\n // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold\r\n return _a / _b;\r\n }\r\n\r\n /**\r\n * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n */\r\n function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {\r\n assert(_b <= _a);\r\n return _a - _b;\r\n }\r\n\r\n /**\r\n * @dev Adds two numbers, throws on overflow.\r\n */\r\n function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\r\n c = _a + _b;\r\n assert(c >= _a);\r\n return c;\r\n }\r\n}\r\n"
},
"contracts/zeppelin/ownership/Ownable.sol": {
"content": "// SPDX-License-Identifier: GPL\r\npragma solidity 0.6.12;\r\n\r\n\r\n/**\r\n * @title Ownable\r\n * @dev The Ownable contract has an owner address, and provides basic authorization control\r\n * functions, this simplifies the implementation of \"user permissions\".\r\n */\r\ncontract Ownable {\r\n address public owner;\r\n\r\n\r\n event OwnershipRenounced(address indexed previousOwner);\r\n event OwnershipTransferred(\r\n address indexed previousOwner,\r\n address indexed newOwner\r\n );\r\n\r\n\r\n /**\r\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\r\n * account.\r\n */\r\n constructor() public {\r\n owner = msg.sender;\r\n }\r\n\r\n /**\r\n * @dev Throws if called by any account other than the owner.\r\n */\r\n modifier onlyOwner() {\r\n require(msg.sender == owner);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Allows the current owner to relinquish control of the contract.\r\n * @notice Renouncing to ownership will leave the contract without an owner.\r\n * It will not be possible to call the functions with the `onlyOwner`\r\n * modifier anymore.\r\n */\r\n function renounceOwnership() public onlyOwner {\r\n emit OwnershipRenounced(owner);\r\n owner = address(0);\r\n }\r\n\r\n /**\r\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\r\n * @param _newOwner The address to transfer ownership to.\r\n */\r\n function transferOwnership(address _newOwner) public onlyOwner {\r\n _transferOwnership(_newOwner);\r\n }\r\n\r\n /**\r\n * @dev Transfers control of the contract to a newOwner.\r\n * @param _newOwner The address to transfer ownership to.\r\n */\r\n function _transferOwnership(address _newOwner) internal {\r\n require(_newOwner != address(0));\r\n emit OwnershipTransferred(owner, _newOwner);\r\n owner = _newOwner;\r\n }\r\n}\r\n"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/SimpleBond.sol": {
"SmartGreenBond": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_par",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_parDecimals",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_coupon",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_term",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_cap",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_timesToRedeem",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_loopLimit",
"type": "uint256"
},
{
"internalType": "address",
"name": "_oracle",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountClaimed",
"type": "uint256"
}
],
"name": "ClaimedPar",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bondsAmount",
"type": "uint256"
}
],
"name": "MintedBond",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "bonds",
"type": "uint256[]"
}
],
"name": "RedeemedCoupons",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "totalOwed",
"type": "uint256"
}
],
"name": "TotalOwedUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "bonds",
"type": "uint256[]"
}
],
"name": "Transferred",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_loopLimit",
"type": "uint256"
}
],
"name": "changeLoopLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address"
}
],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getBondOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCouponRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCouponThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getCouponsRedeemed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getLastTimeRedeemed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getMaturity",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParDecimals",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParValue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bond",
"type": "uint256"
}
],
"name": "getRemainingCoupons",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getSimpleInterest",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTerm",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTimesToRedeem",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalBonds",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalDebt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalOwed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"internalType": "uint256",
"name": "_bondsAmount",
"type": "uint256"
}
],
"name": "mintBond",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "payTotalDebt",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "redeemCoupons",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "_bonds",
"type": "uint256[]"
}
],
"name": "transfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "noxMeasurement",
"type": "uint256"
}
],
"name": "updateTotalOwed",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"changeLoopLimit(uint256)": {
"params": {
"_loopLimit": "The new loop limit"
}
},
"constructor": {
"params": {
"_cap": "The new loop limi",
"_coupon": "The new loop limi",
"_loopLimit": "The new loop limi´",
"_oracle": "The new loop limi",
"_par": "The new loop limi",
"_parDecimals": "The new loop limi",
"_term": "The new loop limi",
"_timesToRedeem": "The new loop limi"
}
},
"getBalance(address)": {
"details": "Get amount of bonds that an address has",
"params": {
"who": "The address to analyze"
}
},
"getBondOwner(uint256)": {
"details": "Get the owner of a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getCap()": {
"details": "Get the cap amount for these bonds"
},
"getCouponRate()": {
"details": "Get the yield of a bond"
},
"getCouponThreshold()": {
"details": "Get the amount of time that needs to pass between the dates when you can redeem coupons"
},
"getCouponsRedeemed(uint256)": {
"details": "Get how many coupons were redeemed for a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getLastTimeRedeemed(uint256)": {
"details": "Get the last time coupons for a particular bond were redeemed",
"params": {
"bond": "The bond id to analyze"
}
},
"getMaturity(uint256)": {
"details": "Get the maturity date for a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getName()": {
"details": "Get the name of this smart bond contract"
},
"getNonce()": {
"details": "Get the latest nonce"
},
"getParDecimals()": {
"details": "If the par value is a real number, it might have decimals. Get the amount of decimals the par value has"
},
"getParValue()": {
"details": "Get the par value for these bonds"
},
"getRemainingCoupons(uint256)": {
"details": "Get how many coupons remain to be redeemed for a specific bond",
"params": {
"bond": "The bond id to analyze"
}
},
"getSimpleInterest()": {
"details": "Get how much money is redeemed on a coupon"
},
"getTerm()": {
"details": "Get how much time it takes for a bond to mature"
},
"getTimesToRedeem()": {
"details": "Get how many times coupons can be redeemed for bonds"
},
"getTotalBonds()": {
"details": "Get the total amount of bonds issued"
},
"getTotalDebt()": {
"details": "Get the current unpaid debt"
},
"getTotalOwed()": {
"details": "Get total debt owed by borrower"
},
"mintBond(address,uint256)": {
"params": {
"_bondsAmount": "How many bonds to mint",
"buyer": "The buyer of the bonds"
}
},
"redeemCoupons(uint256[])": {
"params": {
"_bonds": "An array of bond ids corresponding to the bonds you want to redeem apon"
}
},
"renounceOwnership()": {
"details": "Allows the current owner to relinquish control of the contract."
},
"transfer(address,uint256[])": {
"params": {
"_bonds": "The ids of the bonds that you want to transfer",
"receiver": "The receiver of the bonds"
}
},
"transferOwnership(address)": {
"details": "Allows the current owner to transfer control of the contract to a newOwner.",
"params": {
"_newOwner": "The address to transfer ownership to."
}
},
"updateTotalOwed(uint256)": {
"params": {
"noxMeasurement": "The amount in wei the borrower has to pay. Calculated by the oracle from the DEFRA NOx data of London"
}
}
},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/SimpleBond.sol\":207:14723 contract SmartGreenBond is ISimpleBond, Ownable {\r... */\n mstore(0x40, 0x80)\n /* \"contracts/SimpleBond.sol\":697:698 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":681:698 uint256 nonce = 0 */\n 0x0c\n sstore\n /* \"contracts/SimpleBond.sol\":731:732 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":705:732 uint256 couponThreshold = 0 */\n 0x0d\n sstore\n /* \"contracts/SimpleBond.sol\":784:785 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":760:785 uint256 intervalCount = 0 */\n 0x0f\n sstore\n /* \"contracts/SimpleBond.sol\":1511:2518 constructor(\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n 0x0120\n dup2\n lt\n iszero\n tag_2\n jumpi\n 0x00\n dup1\n revert\ntag_2:\n dup2\n add\n swap1\n dup1\n dup1\n mload\n mload(0x40)\n swap4\n swap3\n swap2\n swap1\n dup5\n 0x0100000000\n dup3\n gt\n iszero\n tag_3\n jumpi\n 0x00\n dup1\n revert\ntag_3:\n dup4\n dup3\n add\n swap2\n pop\n 0x20\n dup3\n add\n dup6\n dup2\n gt\n iszero\n tag_4\n jumpi\n 0x00\n dup1\n revert\ntag_4:\n dup3\n mload\n dup7\n 0x01\n dup3\n mul\n dup4\n add\n gt\n 0x0100000000\n dup3\n gt\n or\n iszero\n tag_5\n jumpi\n 0x00\n dup1\n revert\ntag_5:\n dup1\n dup4\n mstore\n 0x20\n dup4\n add\n swap3\n pop\n pop\n pop\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\ntag_6:\n dup4\n dup2\n lt\n iszero\n tag_8\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_6)\ntag_8:\n pop\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_9\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\ntag_9:\n pop\n 0x40\n mstore\n 0x20\n add\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n /* \"contracts/zeppelin/ownership/Ownable.sol\":631:641 msg.sender */\n caller\n /* \"contracts/zeppelin/ownership/Ownable.sol\":623:628 owner */\n 0x00\n dup1\n /* \"contracts/zeppelin/ownership/Ownable.sol\":623:641 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":1837:1838 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":1821:1826 _name */\n dup10\n /* \"contracts/SimpleBond.sol\":1815:1834 bytes(_name).length */\n mload\n /* \"contracts/SimpleBond.sol\":1815:1838 bytes(_name).length > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":1807:1862 require(bytes(_name).length > 0, \"Empty name provided\") */\n tag_14\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x13\n dup2\n mstore\n 0x20\n add\n dup1\n 0x456d707479206e616d652070726f766964656400000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\ntag_14:\n /* \"contracts/SimpleBond.sol\":1891:1892 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":1881:1888 _coupon */\n dup7\n /* \"contracts/SimpleBond.sol\":1881:1892 _coupon > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":1873:1931 require(_coupon > 0, \"Coupon rate lower than or equal 0 \") */\n tag_15\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x22\n dup2\n mstore\n 0x20\n add\n dup1\n data_8dd3ab97cbb5d6e9e623ddd1b513cc268f45d07aa8071a98b39d610d12096f0a\n 0x22\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\ntag_15:\n /* \"contracts/SimpleBond.sol\":1957:1958 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":1950:1954 _par */\n dup9\n /* \"contracts/SimpleBond.sol\":1950:1958 _par > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":1942:1988 require(_par > 0, \"Par lower than or equal 0\") */\n tag_16\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x19\n dup2\n mstore\n 0x20\n add\n dup1\n 0x506172206c6f776572207468616e206f7220657175616c203000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\ntag_16:\n /* \"contracts/SimpleBond.sol\":2015:2016 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":2007:2012 _term */\n dup6\n /* \"contracts/SimpleBond.sol\":2007:2016 _term > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":1999:2047 require(_term > 0, \"Term lower than or equal 0\") */\n tag_17\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x1a\n dup2\n mstore\n 0x20\n add\n dup1\n 0x5465726d206c6f776572207468616e206f7220657175616c2030000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\ntag_17:\n /* \"contracts/SimpleBond.sol\":2079:2080 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":2066:2076 _loopLimit */\n dup3\n /* \"contracts/SimpleBond.sol\":2066:2080 _loopLimit > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":2058:2117 require(_loopLimit > 0, \"Loop limit lower than or equal 0\") */\n tag_18\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x20\n dup2\n mstore\n 0x20\n add\n dup1\n 0x4c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c2030\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\ntag_18:\n /* \"contracts/SimpleBond.sol\":2153:2154 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":2136:2150 _timesToRedeem */\n dup4\n /* \"contracts/SimpleBond.sol\":2136:2154 _timesToRedeem > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":2128:2194 require(_timesToRedeem > 0, \"Times to redeem lower or equal to 0\") */\n tag_19\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x23\n dup2\n mstore\n 0x20\n add\n dup1\n data_e47924b32ec90782d66a1a7eb0f0aeccc07e7a3a94e19d7cf1ef7bb99e82600f\n 0x23\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\ntag_19:\n /* \"contracts/SimpleBond.sol\":2214:2219 _name */\n dup9\n /* \"contracts/SimpleBond.sol\":2207:2211 name */\n 0x01\n /* \"contracts/SimpleBond.sol\":2207:2219 name = _name */\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_20\n swap3\n swap2\n swap1\n tag_21\n jump\t// in\ntag_20:\n pop\n /* \"contracts/SimpleBond.sol\":2241:2245 _par */\n dup8\n /* \"contracts/SimpleBond.sol\":2230:2238 parValue */\n 0x07\n /* \"contracts/SimpleBond.sol\":2230:2245 parValue = _par */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2262:2266 _cap */\n dup4\n /* \"contracts/SimpleBond.sol\":2256:2259 cap */\n 0x06\n /* \"contracts/SimpleBond.sol\":2256:2266 cap = _cap */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2289:2299 _loopLimit */\n dup2\n /* \"contracts/SimpleBond.sol\":2277:2286 loopLimit */\n 0x0b\n /* \"contracts/SimpleBond.sol\":2277:2299 loopLimit = _loopLimit */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2324:2336 _parDecimals */\n dup7\n /* \"contracts/SimpleBond.sol\":2310:2321 parDecimals */\n 0x04\n /* \"contracts/SimpleBond.sol\":2310:2336 parDecimals = _parDecimals */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2363:2377 _timesToRedeem */\n dup3\n /* \"contracts/SimpleBond.sol\":2347:2360 timesToRedeem */\n 0x0a\n /* \"contracts/SimpleBond.sol\":2347:2377 timesToRedeem = _timesToRedeem */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2401:2408 _coupon */\n dup6\n /* \"contracts/SimpleBond.sol\":2388:2398 couponRate */\n 0x08\n /* \"contracts/SimpleBond.sol\":2388:2408 couponRate = _coupon */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2426:2431 _term */\n dup5\n /* \"contracts/SimpleBond.sol\":2419:2423 term */\n 0x09\n /* \"contracts/SimpleBond.sol\":2419:2431 term = _term */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2460:2483 term.div(timesToRedeem) */\n tag_22\n /* \"contracts/SimpleBond.sol\":2469:2482 timesToRedeem */\n sload(0x0a)\n /* \"contracts/SimpleBond.sol\":2460:2464 term */\n sload(0x09)\n /* \"contracts/SimpleBond.sol\":2460:2468 term.div */\n or(tag_0_147, shl(0x20, tag_23))\n swap1\n /* \"contracts/SimpleBond.sol\":2460:2483 term.div(timesToRedeem) */\n swap2\n swap1\n 0x20\n shr\n jump\t// in\ntag_22:\n /* \"contracts/SimpleBond.sol\":2442:2457 couponThreshold */\n 0x0d\n /* \"contracts/SimpleBond.sol\":2442:2483 couponThreshold = term.div(timesToRedeem) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2503:2510 _oracle */\n dup1\n /* \"contracts/SimpleBond.sol\":2494:2500 oracle */\n 0x0e\n 0x00\n /* \"contracts/SimpleBond.sol\":2494:2510 oracle = _oracle */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":1511:2518 constructor(\r... */\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n /* \"contracts/SimpleBond.sol\":207:14723 contract SmartGreenBond is ISimpleBond, Ownable {\r... */\n jump(tag_24)\n /* \"contracts/zeppelin/SafeMath.sol\":725:1013 function div(uint256 _a, uint256 _b) internal pure returns (uint256) {\r... */\ntag_23:\n /* \"contracts/zeppelin/SafeMath.sol\":785:792 uint256 */\n 0x00\n /* \"contracts/zeppelin/SafeMath.sol\":1005:1007 _b */\n dup2\n /* \"contracts/zeppelin/SafeMath.sol\":1000:1002 _a */\n dup4\n /* \"contracts/zeppelin/SafeMath.sol\":1000:1007 _a / _b */\n dup2\n tag_26\n jumpi\n invalid\ntag_26:\n div\n /* \"contracts/zeppelin/SafeMath.sol\":993:1007 return _a / _b */\n swap1\n pop\n /* \"contracts/zeppelin/SafeMath.sol\":725:1013 function div(uint256 _a, uint256 _b) internal pure returns (uint256) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":207:14723 contract SmartGreenBond is ISimpleBond, Ownable {\r... */\ntag_21:\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n swap1\n 0x00\n mstore\n keccak256(0x00, 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_28\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_27)\ntag_28:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_27\n jumpi\n swap2\n dup3\n add\ntag_29:\n dup3\n dup2\n gt\n iszero\n tag_30\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_29)\ntag_30:\ntag_27:\n pop\n swap1\n pop\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\ntag_31:\n pop\n swap1\n jump\t// out\ntag_32:\ntag_33:\n dup1\n dup3\n gt\n iszero\n tag_34\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_33)\ntag_34:\n pop\n swap1\n jump\t// out\ntag_24:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\ndata_8dd3ab97cbb5d6e9e623ddd1b513cc268f45d07aa8071a98b39d610d12096f0a 436f75706f6e2072617465206c6f776572207468616e206f7220657175616c203020\ndata_e47924b32ec90782d66a1a7eb0f0aeccc07e7a3a94e19d7cf1ef7bb99e82600f 54696d657320746f2072656465656d206c6f776572206f7220657175616c20746f2030\n\nsub_0: assembly {\n /* \"contracts/SimpleBond.sol\":207:14723 contract SmartGreenBond is ISimpleBond, Ownable {\r... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x7f1e7d41\n gt\n tag_31\n jumpi\n dup1\n 0xd561bf53\n gt\n tag_32\n jumpi\n dup1\n 0xe5759436\n gt\n tag_33\n jumpi\n dup1\n 0xe5759436\n eq\n tag_27\n jumpi\n dup1\n 0xf2fde38b\n eq\n tag_28\n jumpi\n dup1\n 0xf8b2cb4f\n eq\n tag_29\n jumpi\n dup1\n 0xff214cbf\n eq\n tag_30\n jumpi\n jump(tag_2)\n tag_33:\n dup1\n 0xd561bf53\n eq\n tag_24\n jumpi\n dup1\n 0xd87f0afc\n eq\n tag_25\n jumpi\n dup1\n 0xe0e09e0f\n eq\n tag_26\n jumpi\n jump(tag_2)\n tag_32:\n dup1\n 0x95c8cbc9\n gt\n tag_34\n jumpi\n dup1\n 0x95c8cbc9\n eq\n tag_20\n jumpi\n dup1\n 0xbb305ef2\n eq\n tag_21\n jumpi\n dup1\n 0xcb57b0a5\n eq\n tag_22\n jumpi\n dup1\n 0xd087d288\n eq\n tag_23\n jumpi\n jump(tag_2)\n tag_34:\n dup1\n 0x7f1e7d41\n eq\n tag_17\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_18\n jumpi\n dup1\n 0x95be1f1a\n eq\n tag_19\n jumpi\n jump(tag_2)\n tag_31:\n dup1\n 0x43b07485\n gt\n tag_35\n jumpi\n dup1\n 0x70843ae9\n gt\n tag_36\n jumpi\n dup1\n 0x70843ae9\n eq\n tag_13\n jumpi\n dup1\n 0x715018a6\n eq\n tag_14\n jumpi\n dup1\n 0x7a36c307\n eq\n tag_15\n jumpi\n dup1\n 0x7aafdeee\n eq\n tag_16\n jumpi\n jump(tag_2)\n tag_36:\n dup1\n 0x43b07485\n eq\n tag_10\n jumpi\n dup1\n 0x554d578d\n eq\n tag_11\n jumpi\n dup1\n 0x66e3d5ac\n eq\n tag_12\n jumpi\n jump(tag_2)\n tag_35:\n dup1\n 0x17d7de7c\n gt\n tag_37\n jumpi\n dup1\n 0x17d7de7c\n eq\n tag_6\n jumpi\n dup1\n 0x2b4e4e96\n eq\n tag_7\n jumpi\n dup1\n 0x34ce998a\n eq\n tag_8\n jumpi\n dup1\n 0x39dc486a\n eq\n tag_9\n jumpi\n jump(tag_2)\n tag_37:\n dup1\n 0x0f0044bf\n eq\n tag_3\n jumpi\n dup1\n 0x112f84e1\n eq\n tag_4\n jumpi\n dup1\n 0x124b65b4\n eq\n tag_5\n jumpi\n jump(tag_2)\n tag_1:\n jumpi(tag_2, calldatasize)\n stop\n tag_2:\n stop\n /* \"contracts/SimpleBond.sol\":10164:10519 function getLastTimeRedeemed(uint256 bond)\r... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_42\n jumpi\n 0x00\n dup1\n revert\n tag_42:\n pop\n tag_43\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_44\n jumpi\n 0x00\n dup1\n revert\n tag_44:\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 pop\n pop\n pop\n tag_45\n jump\t// in\n tag_43:\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/SimpleBond.sol\":12451:12650 function getSimpleInterest() public override view returns (uint256) {\r... */\n tag_4:\n callvalue\n dup1\n iszero\n tag_46\n jumpi\n 0x00\n dup1\n revert\n tag_46:\n pop\n tag_47\n tag_48\n jump\t// in\n tag_47:\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/SimpleBond.sol\":12037:12125 function getTerm() public override view returns (uint256) {\r... */\n tag_5:\n callvalue\n dup1\n iszero\n tag_49\n jumpi\n 0x00\n dup1\n revert\n tag_49:\n pop\n tag_50\n tag_51\n jump\t// in\n tag_50:\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/SimpleBond.sol\":13714:13808 function getName() public override view returns (string memory) {\r... */\n tag_6:\n callvalue\n dup1\n iszero\n tag_52\n jumpi\n 0x00\n dup1\n revert\n tag_52:\n pop\n tag_53\n tag_54\n jump\t// in\n tag_53:\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 0x00\n tag_55:\n dup4\n dup2\n lt\n iszero\n tag_57\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_55)\n tag_57:\n pop\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_58\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_58:\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/SimpleBond.sol\":6892:7805 function transfer(address receiver, uint256[] memory _bonds)\r... */\n tag_7:\n callvalue\n dup1\n iszero\n tag_59\n jumpi\n 0x00\n dup1\n revert\n tag_59:\n pop\n tag_60\n 0x04\n dup1\n calldatasize\n sub\n 0x40\n dup2\n lt\n iszero\n tag_61\n jumpi\n 0x00\n dup1\n revert\n tag_61:\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 0x0100000000\n dup2\n gt\n iszero\n tag_62\n jumpi\n 0x00\n dup1\n revert\n tag_62:\n dup3\n add\n dup4\n 0x20\n dup3\n add\n gt\n iszero\n tag_63\n jumpi\n 0x00\n dup1\n revert\n tag_63:\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n dup5\n 0x20\n dup4\n mul\n dup5\n add\n gt\n 0x0100000000\n dup4\n gt\n or\n iszero\n tag_64\n jumpi\n 0x00\n dup1\n revert\n tag_64:\n swap2\n swap1\n dup1\n dup1\n 0x20\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 0x20\n mul\n dup1\n dup3\n dup5\n calldatacopy\n 0x00\n dup2\n dup5\n add\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n swap1\n pop\n dup1\n dup4\n add\n swap3\n pop\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 tag_65\n jump\t// in\n tag_60:\n stop\n /* \"contracts/SimpleBond.sol\":13877:13975 function getTotalDebt() public override view returns (uint256) {\r... */\n tag_8:\n callvalue\n dup1\n iszero\n tag_66\n jumpi\n 0x00\n dup1\n revert\n tag_66:\n pop\n tag_67\n tag_68\n jump\t// in\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/SimpleBond.sol\":8218:8975 function updateTotalOwed(uint256 noxMeasurement) public onlyOracle { // called every 1 year by an off-chain oracle EOA\r... */\n tag_9:\n callvalue\n dup1\n iszero\n tag_69\n jumpi\n 0x00\n dup1\n revert\n tag_69:\n pop\n tag_70\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_71\n jumpi\n 0x00\n dup1\n revert\n tag_71:\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 pop\n pop\n pop\n tag_72\n jump\t// in\n tag_70:\n stop\n /* \"contracts/SimpleBond.sol\":10895:11225 function getRemainingCoupons(uint256 bond)\r... */\n tag_10:\n callvalue\n dup1\n iszero\n tag_73\n jumpi\n 0x00\n dup1\n revert\n tag_73:\n pop\n tag_74\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_75\n jumpi\n 0x00\n dup1\n revert\n tag_75:\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 pop\n pop\n pop\n tag_76\n jump\t// in\n tag_74:\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/SimpleBond.sol\":13062:13148 function getCap() public override view returns (uint256) {\r... */\n tag_11:\n callvalue\n dup1\n iszero\n tag_77\n jumpi\n 0x00\n dup1\n revert\n tag_77:\n pop\n tag_78\n tag_79\n jump\t// in\n tag_78:\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/SimpleBond.sol\":3057:4460 function mintBond(address buyer, uint256 _bondsAmount)\r... */\n tag_12:\n callvalue\n dup1\n iszero\n tag_80\n jumpi\n 0x00\n dup1\n revert\n tag_80:\n pop\n tag_81\n 0x04\n dup1\n calldatasize\n sub\n 0x40\n dup2\n lt\n iszero\n tag_82\n jumpi\n 0x00\n dup1\n revert\n tag_82:\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 tag_83\n jump\t// in\n tag_81:\n stop\n /* \"contracts/SimpleBond.sol\":14610:14720 function getCouponThreshold() public override view returns (uint256) {\r... */\n tag_13:\n callvalue\n dup1\n iszero\n tag_84\n jumpi\n 0x00\n dup1\n revert\n tag_84:\n pop\n tag_85\n tag_86\n jump\t// in\n tag_85:\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/zeppelin/ownership/Ownable.sol\":1074:1188 function renounceOwnership() public onlyOwner {\r... */\n tag_14:\n callvalue\n dup1\n iszero\n tag_87\n jumpi\n 0x00\n dup1\n revert\n tag_87:\n pop\n tag_88\n tag_89\n jump\t// in\n tag_88:\n stop\n /* \"contracts/SimpleBond.sol\":4676:6695 function redeemCoupons(uint256[] memory _bonds) public override {\r... */\n tag_15:\n callvalue\n dup1\n iszero\n tag_90\n jumpi\n 0x00\n dup1\n revert\n tag_90:\n pop\n tag_91\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_92\n jumpi\n 0x00\n dup1\n revert\n tag_92:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n 0x0100000000\n dup2\n gt\n iszero\n tag_93\n jumpi\n 0x00\n dup1\n revert\n tag_93:\n dup3\n add\n dup4\n 0x20\n dup3\n add\n gt\n iszero\n tag_94\n jumpi\n 0x00\n dup1\n revert\n tag_94:\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n dup5\n 0x20\n dup4\n mul\n dup5\n add\n gt\n 0x0100000000\n dup4\n gt\n or\n iszero\n tag_95\n jumpi\n 0x00\n dup1\n revert\n tag_95:\n swap2\n swap1\n dup1\n dup1\n 0x20\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 0x20\n mul\n dup1\n dup3\n dup5\n calldatacopy\n 0x00\n dup2\n dup5\n add\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n swap1\n pop\n dup1\n dup4\n add\n swap3\n pop\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 tag_96\n jump\t// in\n tag_91:\n stop\n /* \"contracts/SimpleBond.sol\":14228:14329 function getTotalBonds() public override view returns (uint256) {\r... */\n tag_16:\n callvalue\n dup1\n iszero\n tag_97\n jumpi\n 0x00\n dup1\n revert\n tag_97:\n pop\n tag_98\n tag_99\n jump\t// in\n tag_98:\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/SimpleBond.sol\":12251:12367 function getMaturity(uint256 bond) public override view returns (uint256) {\r... */\n tag_17:\n callvalue\n dup1\n iszero\n tag_100\n jumpi\n 0x00\n dup1\n revert\n tag_100:\n pop\n tag_101\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_102\n jumpi\n 0x00\n dup1\n revert\n tag_102:\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 pop\n pop\n pop\n tag_103\n jump\t// in\n tag_101:\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/zeppelin/ownership/Ownable.sol\":279:299 address public owner */\n tag_18:\n callvalue\n dup1\n iszero\n tag_104\n jumpi\n 0x00\n dup1\n revert\n tag_104:\n pop\n tag_105\n tag_106\n jump\t// in\n tag_105:\n mload(0x40)\n dup1\n dup3\n 0xffffffffffffffffffffffffffffffffffffffff\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/SimpleBond.sol\":11364:11533 function getCouponsRedeemed(uint256 bond)\r... */\n tag_19:\n callvalue\n dup1\n iszero\n tag_107\n jumpi\n 0x00\n dup1\n revert\n tag_107:\n pop\n tag_108\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_109\n jumpi\n 0x00\n dup1\n revert\n tag_109:\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 pop\n pop\n pop\n tag_110\n jump\t// in\n tag_108:\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/SimpleBond.sol\":14052:14150 function getTotalOwed() public override view returns (uint256) {\r... */\n tag_20:\n callvalue\n dup1\n iszero\n tag_111\n jumpi\n 0x00\n dup1\n revert\n tag_111:\n pop\n tag_112\n tag_113\n jump\t// in\n tag_112:\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/SimpleBond.sol\":10636:10748 function getBondOwner(uint256 bond) public override view returns (address) {\r... */\n tag_21:\n callvalue\n dup1\n iszero\n tag_114\n jumpi\n 0x00\n dup1\n revert\n tag_114:\n pop\n tag_115\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_116\n jumpi\n 0x00\n dup1\n revert\n tag_116:\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 pop\n pop\n pop\n tag_117\n jump\t// in\n tag_115:\n mload(0x40)\n dup1\n dup3\n 0xffffffffffffffffffffffffffffffffffffffff\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/SimpleBond.sol\":12715:12815 function getCouponRate() public override view returns (uint256) {\r... */\n tag_22:\n callvalue\n dup1\n iszero\n tag_118\n jumpi\n 0x00\n dup1\n revert\n tag_118:\n pop\n tag_119\n tag_120\n jump\t// in\n tag_119:\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/SimpleBond.sol\":14391:14481 function getNonce() public override view returns (uint256) {\r... */\n tag_23:\n callvalue\n dup1\n iszero\n tag_121\n jumpi\n 0x00\n dup1\n revert\n tag_121:\n pop\n tag_122\n tag_123\n jump\t// in\n tag_122:\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/SimpleBond.sol\":12890:12986 function getParValue() public override view returns (uint256) {\r... */\n tag_24:\n callvalue\n dup1\n iszero\n tag_124\n jumpi\n 0x00\n dup1\n revert\n tag_124:\n pop\n tag_125\n tag_126\n jump\t// in\n tag_125:\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/SimpleBond.sol\":2675:2862 function changeLoopLimit(uint256 _loopLimit) public override onlyOwner {\r... */\n tag_25:\n callvalue\n dup1\n iszero\n tag_127\n jumpi\n 0x00\n dup1\n revert\n tag_127:\n pop\n tag_128\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_129\n jumpi\n 0x00\n dup1\n revert\n tag_129:\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 pop\n pop\n pop\n tag_130\n jump\t// in\n tag_128:\n stop\n /* \"contracts/SimpleBond.sol\":13530:13632 function getParDecimals() public override view returns (uint256) {\r... */\n tag_26:\n callvalue\n dup1\n iszero\n tag_131\n jumpi\n 0x00\n dup1\n revert\n tag_131:\n pop\n tag_132\n tag_133\n jump\t// in\n tag_132:\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/SimpleBond.sol\":11842:11948 function getTimesToRedeem() public override view returns (uint256) {\r... */\n tag_27:\n callvalue\n dup1\n iszero\n tag_134\n jumpi\n 0x00\n dup1\n revert\n tag_134:\n pop\n tag_135\n tag_136\n jump\t// in\n tag_135:\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/zeppelin/ownership/Ownable.sol\":1356:1461 function transferOwnership(address _newOwner) public onlyOwner {\r... */\n tag_28:\n callvalue\n dup1\n iszero\n tag_137\n jumpi\n 0x00\n dup1\n revert\n tag_137:\n pop\n tag_138\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_139\n jumpi\n 0x00\n dup1\n revert\n tag_139:\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 tag_140\n jump\t// in\n tag_138:\n stop\n /* \"contracts/SimpleBond.sol\":13271:13385 function getBalance(address who) public override view returns (uint256) {\r... */\n tag_29:\n callvalue\n dup1\n iszero\n tag_141\n jumpi\n 0x00\n dup1\n revert\n tag_141:\n pop\n tag_142\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_143\n jumpi\n 0x00\n dup1\n revert\n tag_143:\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 tag_144\n jump\t// in\n tag_142:\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/SimpleBond.sol\":8983:9221 function payTotalDebt() public payable onlyOwner {\r... */\n tag_30:\n tag_145\n tag_146\n jump\t// in\n tag_145:\n stop\n /* \"contracts/SimpleBond.sol\":10164:10519 function getLastTimeRedeemed(uint256 bond)\r... */\n tag_45:\n /* \"contracts/SimpleBond.sol\":10273:10280 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":10298:10315 uint256 issueDate */\n dup1\n /* \"contracts/SimpleBond.sol\":10318:10344 maturities[bond].sub(term) */\n tag_149\n /* \"contracts/SimpleBond.sol\":10339:10343 term */\n sload(0x09)\n /* \"contracts/SimpleBond.sol\":10318:10328 maturities */\n 0x11\n /* \"contracts/SimpleBond.sol\":10318:10334 maturities[bond] */\n 0x00\n /* \"contracts/SimpleBond.sol\":10329:10333 bond */\n dup7\n /* \"contracts/SimpleBond.sol\":10318:10334 maturities[bond] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":10318:10338 maturities[bond].sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":10318:10344 maturities[bond].sub(term) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_149:\n /* \"contracts/SimpleBond.sol\":10298:10344 uint256 issueDate = maturities[bond].sub(term) */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":10357:10386 uint256 lastThresholdRedeemed */\n 0x00\n /* \"contracts/SimpleBond.sol\":10389:10470 issueDate.add(\r... */\n tag_151\n /* \"contracts/SimpleBond.sol\":10417:10459 couponsRedeemed[bond].mul(couponThreshold) */\n tag_152\n /* \"contracts/SimpleBond.sol\":10443:10458 couponThreshold */\n sload(0x0d)\n /* \"contracts/SimpleBond.sol\":10417:10432 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":10417:10438 couponsRedeemed[bond] */\n 0x00\n /* \"contracts/SimpleBond.sol\":10433:10437 bond */\n dup9\n /* \"contracts/SimpleBond.sol\":10417:10438 couponsRedeemed[bond] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":10417:10442 couponsRedeemed[bond].mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":10417:10459 couponsRedeemed[bond].mul(couponThreshold) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_152:\n /* \"contracts/SimpleBond.sol\":10389:10398 issueDate */\n dup4\n /* \"contracts/SimpleBond.sol\":10389:10402 issueDate.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":10389:10470 issueDate.add(\r... */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_151:\n /* \"contracts/SimpleBond.sol\":10357:10470 uint256 lastThresholdRedeemed = issueDate.add(\r... */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":10490:10511 lastThresholdRedeemed */\n dup1\n /* \"contracts/SimpleBond.sol\":10483:10511 return lastThresholdRedeemed */\n swap3\n pop\n pop\n pop\n /* \"contracts/SimpleBond.sol\":10164:10519 function getLastTimeRedeemed(uint256 bond)\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":12451:12650 function getSimpleInterest() public override view returns (uint256) {\r... */\n tag_48:\n /* \"contracts/SimpleBond.sol\":12510:12517 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":12530:12542 uint256 rate */\n dup1\n /* \"contracts/SimpleBond.sol\":12545:12560 getCouponRate() */\n tag_156\n /* \"contracts/SimpleBond.sol\":12545:12558 getCouponRate */\n tag_120\n /* \"contracts/SimpleBond.sol\":12545:12560 getCouponRate() */\n jump\t// in\n tag_156:\n /* \"contracts/SimpleBond.sol\":12530:12560 uint256 rate = getCouponRate() */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":12573:12584 uint256 par */\n 0x00\n /* \"contracts/SimpleBond.sol\":12587:12600 getParValue() */\n tag_157\n /* \"contracts/SimpleBond.sol\":12587:12598 getParValue */\n tag_126\n /* \"contracts/SimpleBond.sol\":12587:12600 getParValue() */\n jump\t// in\n tag_157:\n /* \"contracts/SimpleBond.sol\":12573:12600 uint256 par = getParValue() */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":12620:12642 par.mul(rate).div(100) */\n tag_158\n /* \"contracts/SimpleBond.sol\":12638:12641 100 */\n 0x64\n /* \"contracts/SimpleBond.sol\":12620:12633 par.mul(rate) */\n tag_159\n /* \"contracts/SimpleBond.sol\":12628:12632 rate */\n dup5\n /* \"contracts/SimpleBond.sol\":12620:12623 par */\n dup5\n /* \"contracts/SimpleBond.sol\":12620:12627 par.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":12620:12633 par.mul(rate) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_159:\n /* \"contracts/SimpleBond.sol\":12620:12637 par.mul(rate).div */\n tag_147\n swap1\n /* \"contracts/SimpleBond.sol\":12620:12642 par.mul(rate).div(100) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_158:\n /* \"contracts/SimpleBond.sol\":12613:12642 return par.mul(rate).div(100) */\n swap3\n pop\n pop\n pop\n /* \"contracts/SimpleBond.sol\":12451:12650 function getSimpleInterest() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":12037:12125 function getTerm() public override view returns (uint256) {\r... */\n tag_51:\n /* \"contracts/SimpleBond.sol\":12086:12093 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":12113:12117 term */\n sload(0x09)\n /* \"contracts/SimpleBond.sol\":12106:12117 return term */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":12037:12125 function getTerm() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":13714:13808 function getName() public override view returns (string memory) {\r... */\n tag_54:\n /* \"contracts/SimpleBond.sol\":13763:13776 string memory */\n 0x60\n /* \"contracts/SimpleBond.sol\":13796:13800 name */\n 0x01\n /* \"contracts/SimpleBond.sol\":13789:13800 return name */\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\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 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n iszero\n tag_162\n jumpi\n dup1\n 0x1f\n lt\n tag_163\n jumpi\n 0x0100\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_162)\n tag_163:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_164:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_164\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_162:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":13714:13808 function getName() public override view returns (string memory) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":6892:7805 function transfer(address receiver, uint256[] memory _bonds)\r... */\n tag_65:\n /* \"contracts/SimpleBond.sol\":7027:7028 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":7011:7017 _bonds */\n dup2\n /* \"contracts/SimpleBond.sol\":7011:7024 _bonds.length */\n mload\n /* \"contracts/SimpleBond.sol\":7011:7028 _bonds.length > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":7003:7065 require(_bonds.length > 0, \"Array of bonds must not be empty\") */\n tag_166\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x20\n dup2\n mstore\n 0x20\n add\n dup1\n 0x4172726179206f6620626f6e6473206d757374206e6f7420626520656d707479\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_166:\n /* \"contracts/SimpleBond.sol\":7104:7105 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":7084:7106 receiver != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":7084:7092 receiver */\n dup3\n /* \"contracts/SimpleBond.sol\":7084:7106 receiver != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"contracts/SimpleBond.sol\":7076:7141 require(receiver != address(0), \"Receiver can't be address null\") */\n tag_167\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x1e\n dup2\n mstore\n 0x20\n add\n dup1\n 0x52656365697665722063616e27742062652061646472657373206e756c6c0000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_167:\n /* \"contracts/SimpleBond.sol\":7191:7213 getBalance(msg.sender) */\n tag_168\n /* \"contracts/SimpleBond.sol\":7202:7212 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":7191:7201 getBalance */\n tag_144\n /* \"contracts/SimpleBond.sol\":7191:7213 getBalance(msg.sender) */\n jump\t// in\n tag_168:\n /* \"contracts/SimpleBond.sol\":7174:7180 _bonds */\n dup2\n /* \"contracts/SimpleBond.sol\":7174:7187 _bonds.length */\n mload\n /* \"contracts/SimpleBond.sol\":7174:7213 _bonds.length <= getBalance(msg.sender) */\n gt\n iszero\n /* \"contracts/SimpleBond.sol\":7152:7333 require(\r... */\n tag_169\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x5c\n dup2\n mstore\n 0x20\n add\n dup1\n data_4e7bab3c6fe7fcb625b19507383c831f702f1e4eb77a04c824753c2e87903f47\n 0x5c\n swap2\n codecopy\n 0x60\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_169:\n /* \"contracts/SimpleBond.sol\":7351:7360 uint256 i */\n 0x00\n /* \"contracts/SimpleBond.sol\":7346:7739 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n tag_170:\n /* \"contracts/SimpleBond.sol\":7370:7376 _bonds */\n dup2\n /* \"contracts/SimpleBond.sol\":7370:7383 _bonds.length */\n mload\n /* \"contracts/SimpleBond.sol\":7366:7367 i */\n dup2\n /* \"contracts/SimpleBond.sol\":7366:7383 i < _bonds.length */\n lt\n /* \"contracts/SimpleBond.sol\":7346:7739 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n iszero\n tag_171\n jumpi\n /* \"contracts/SimpleBond.sol\":7447:7457 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":7427:7457 bonds[_bonds[i]] != msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":7427:7432 bonds */\n 0x10\n /* \"contracts/SimpleBond.sol\":7427:7443 bonds[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":7433:7439 _bonds */\n dup5\n /* \"contracts/SimpleBond.sol\":7440:7441 i */\n dup5\n /* \"contracts/SimpleBond.sol\":7433:7442 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_173\n jumpi\n invalid\n tag_173:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":7427:7443 bonds[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":7427:7457 bonds[_bonds[i]] != msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"contracts/SimpleBond.sol\":7427:7521 bonds[_bonds[i]] != msg.sender ||\r... */\n dup1\n tag_174\n jumpi\n pop\n /* \"contracts/SimpleBond.sol\":7508:7521 timesToRedeem */\n sload(0x0a)\n /* \"contracts/SimpleBond.sol\":7478:7493 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":7478:7504 couponsRedeemed[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":7494:7500 _bonds */\n dup5\n /* \"contracts/SimpleBond.sol\":7501:7502 i */\n dup5\n /* \"contracts/SimpleBond.sol\":7494:7503 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_175\n jumpi\n invalid\n tag_175:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":7478:7504 couponsRedeemed[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":7478:7521 couponsRedeemed[_bonds[i]] == timesToRedeem */\n eq\n /* \"contracts/SimpleBond.sol\":7427:7521 bonds[_bonds[i]] != msg.sender ||\r... */\n tag_174:\n /* \"contracts/SimpleBond.sol\":7405:7545 if (\r... */\n iszero\n tag_176\n jumpi\n /* \"contracts/SimpleBond.sol\":7537:7545 continue */\n jump(tag_172)\n /* \"contracts/SimpleBond.sol\":7405:7545 if (\r... */\n tag_176:\n /* \"contracts/SimpleBond.sol\":7581:7589 receiver */\n dup3\n /* \"contracts/SimpleBond.sol\":7562:7567 bonds */\n 0x10\n /* \"contracts/SimpleBond.sol\":7562:7578 bonds[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":7568:7574 _bonds */\n dup5\n /* \"contracts/SimpleBond.sol\":7575:7576 i */\n dup5\n /* \"contracts/SimpleBond.sol\":7568:7577 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_177\n jumpi\n invalid\n tag_177:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":7562:7578 bonds[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/SimpleBond.sol\":7562:7589 bonds[_bonds[i]] = receiver */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":7630:7660 bondsAmount[msg.sender].sub(1) */\n tag_178\n /* \"contracts/SimpleBond.sol\":7658:7659 1 */\n 0x01\n /* \"contracts/SimpleBond.sol\":7630:7641 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":7630:7653 bondsAmount[msg.sender] */\n 0x00\n /* \"contracts/SimpleBond.sol\":7642:7652 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":7630:7653 bondsAmount[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 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":7630:7657 bondsAmount[msg.sender].sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":7630:7660 bondsAmount[msg.sender].sub(1) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_178:\n /* \"contracts/SimpleBond.sol\":7604:7615 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":7604:7627 bondsAmount[msg.sender] */\n 0x00\n /* \"contracts/SimpleBond.sol\":7616:7626 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":7604:7627 bondsAmount[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 0x00\n keccak256\n /* \"contracts/SimpleBond.sol\":7604:7660 bondsAmount[msg.sender] = bondsAmount[msg.sender].sub(1) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":7699:7727 bondsAmount[receiver].add(1) */\n tag_179\n /* \"contracts/SimpleBond.sol\":7725:7726 1 */\n 0x01\n /* \"contracts/SimpleBond.sol\":7699:7710 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":7699:7720 bondsAmount[receiver] */\n 0x00\n /* \"contracts/SimpleBond.sol\":7711:7719 receiver */\n dup7\n /* \"contracts/SimpleBond.sol\":7699:7720 bondsAmount[receiver] */\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 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":7699:7724 bondsAmount[receiver].add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":7699:7727 bondsAmount[receiver].add(1) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_179:\n /* \"contracts/SimpleBond.sol\":7675:7686 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":7675:7696 bondsAmount[receiver] */\n 0x00\n /* \"contracts/SimpleBond.sol\":7687:7695 receiver */\n dup6\n /* \"contracts/SimpleBond.sol\":7675:7696 bondsAmount[receiver] */\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 0x00\n keccak256\n /* \"contracts/SimpleBond.sol\":7675:7727 bondsAmount[receiver] = bondsAmount[receiver].add(1) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":7346:7739 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n tag_172:\n /* \"contracts/SimpleBond.sol\":7385:7388 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"contracts/SimpleBond.sol\":7346:7739 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n jump(tag_170)\n tag_171:\n pop\n /* \"contracts/SimpleBond.sol\":7780:7788 receiver */\n dup2\n /* \"contracts/SimpleBond.sol\":7756:7797 Transferred(msg.sender, receiver, _bonds) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":7768:7778 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":7756:7797 Transferred(msg.sender, receiver, _bonds) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x227687bda9848548d0e213bd3dcc76bc21295e33dff6849e2c2bd7c75cb77bf7\n /* \"contracts/SimpleBond.sol\":7790:7796 _bonds */\n dup4\n /* \"contracts/SimpleBond.sol\":7756:7797 Transferred(msg.sender, receiver, _bonds) */\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 0x20\n mul\n dup1\n dup4\n dup4\n 0x00\n tag_180:\n dup4\n dup2\n lt\n iszero\n tag_182\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_180)\n tag_182:\n pop\n pop\n pop\n pop\n swap1\n pop\n add\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/SimpleBond.sol\":6892:7805 function transfer(address receiver, uint256[] memory _bonds)\r... */\n pop\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":13877:13975 function getTotalDebt() public override view returns (uint256) {\r... */\n tag_68:\n /* \"contracts/SimpleBond.sol\":13931:13938 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":13958:13967 totalDebt */\n sload(0x02)\n /* \"contracts/SimpleBond.sol\":13951:13967 return totalDebt */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":13877:13975 function getTotalDebt() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":8218:8975 function updateTotalOwed(uint256 noxMeasurement) public onlyOracle { // called every 1 year by an off-chain oracle EOA\r... */\n tag_72:\n /* \"contracts/SimpleBond.sol\":7868:7874 oracle */\n 0x0e\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":7854:7874 msg.sender == oracle */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":7854:7864 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":7854:7874 msg.sender == oracle */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/SimpleBond.sol\":7846:7931 require(msg.sender == oracle, \"Only the oracle is authorized to call this function.\") */\n tag_185\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x34\n dup2\n mstore\n 0x20\n add\n dup1\n data_709ea4b6d0fcbbc8c153d7f0dcf100053f12c8eee09404f7ae424a13d3fd9476\n 0x34\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_185:\n /* \"contracts/SimpleBond.sol\":8717:8727 noxHistory */\n 0x14\n /* \"contracts/SimpleBond.sol\":8733:8747 noxMeasurement */\n dup2\n /* \"contracts/SimpleBond.sol\":8717:8748 noxHistory.push(noxMeasurement) */\n swap1\n dup1\n 0x01\n dup2\n sload\n add\n dup1\n dup3\n sstore\n dup1\n swap2\n pop\n pop\n 0x01\n swap1\n sub\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n swap2\n swap1\n swap2\n swap1\n swap2\n pop\n sstore\n /* \"contracts/SimpleBond.sol\":8843:8920 noxMeasurement.mul(2).add(bondsNumber.mul(parValue).mul(couponRate).div(100)) */\n tag_188\n /* \"contracts/SimpleBond.sol\":8869:8919 bondsNumber.mul(parValue).mul(couponRate).div(100) */\n tag_189\n /* \"contracts/SimpleBond.sol\":8915:8918 100 */\n 0x64\n /* \"contracts/SimpleBond.sol\":8869:8910 bondsNumber.mul(parValue).mul(couponRate) */\n tag_190\n /* \"contracts/SimpleBond.sol\":8899:8909 couponRate */\n sload(0x08)\n /* \"contracts/SimpleBond.sol\":8869:8894 bondsNumber.mul(parValue) */\n tag_191\n /* \"contracts/SimpleBond.sol\":8885:8893 parValue */\n sload(0x07)\n /* \"contracts/SimpleBond.sol\":8869:8880 bondsNumber */\n sload(0x05)\n /* \"contracts/SimpleBond.sol\":8869:8884 bondsNumber.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":8869:8894 bondsNumber.mul(parValue) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_191:\n /* \"contracts/SimpleBond.sol\":8869:8898 bondsNumber.mul(parValue).mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":8869:8910 bondsNumber.mul(parValue).mul(couponRate) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_190:\n /* \"contracts/SimpleBond.sol\":8869:8914 bondsNumber.mul(parValue).mul(couponRate).div */\n tag_147\n swap1\n /* \"contracts/SimpleBond.sol\":8869:8919 bondsNumber.mul(parValue).mul(couponRate).div(100) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_189:\n /* \"contracts/SimpleBond.sol\":8843:8864 noxMeasurement.mul(2) */\n tag_192\n /* \"contracts/SimpleBond.sol\":8862:8863 2 */\n 0x02\n /* \"contracts/SimpleBond.sol\":8843:8857 noxMeasurement */\n dup5\n /* \"contracts/SimpleBond.sol\":8843:8861 noxMeasurement.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":8843:8864 noxMeasurement.mul(2) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_192:\n /* \"contracts/SimpleBond.sol\":8843:8868 noxMeasurement.mul(2).add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":8843:8920 noxMeasurement.mul(2).add(bondsNumber.mul(parValue).mul(couponRate).div(100)) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_188:\n /* \"contracts/SimpleBond.sol\":8830:8839 totalOwed */\n 0x03\n 0x00\n /* \"contracts/SimpleBond.sol\":8830:8920 totalOwed += noxMeasurement.mul(2).add(bondsNumber.mul(parValue).mul(couponRate).div(100)) */\n dup3\n dup3\n sload\n add\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":8938:8965 TotalOwedUpdated(totalOwed) */\n 0x2b9f2bb7a18512e471caa1d7f4d4f7a05fcdc0b22c1492bfa58ea4803a068303\n /* \"contracts/SimpleBond.sol\":8955:8964 totalOwed */\n sload(0x03)\n /* \"contracts/SimpleBond.sol\":8938:8965 TotalOwedUpdated(totalOwed) */\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 log1\n /* \"contracts/SimpleBond.sol\":8218:8975 function updateTotalOwed(uint256 noxMeasurement) public onlyOracle { // called every 1 year by an off-chain oracle EOA\r... */\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":10895:11225 function getRemainingCoupons(uint256 bond)\r... */\n tag_76:\n /* \"contracts/SimpleBond.sol\":11004:11010 int256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":11028:11041 address owner */\n dup1\n /* \"contracts/SimpleBond.sol\":11044:11062 getBondOwner(bond) */\n tag_194\n /* \"contracts/SimpleBond.sol\":11057:11061 bond */\n dup4\n /* \"contracts/SimpleBond.sol\":11044:11056 getBondOwner */\n tag_117\n /* \"contracts/SimpleBond.sol\":11044:11062 getBondOwner(bond) */\n jump\t// in\n tag_194:\n /* \"contracts/SimpleBond.sol\":11028:11062 address owner = getBondOwner(bond) */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":11096:11097 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":11079:11098 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":11079:11084 owner */\n dup2\n /* \"contracts/SimpleBond.sol\":11079:11098 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/SimpleBond.sol\":11075:11109 if (owner == address(0)) return -1 */\n iszero\n tag_195\n jumpi\n /* \"contracts/SimpleBond.sol\":11107:11109 -1 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"contracts/SimpleBond.sol\":11100:11109 return -1 */\n swap2\n pop\n pop\n jump(tag_193)\n /* \"contracts/SimpleBond.sol\":11075:11109 if (owner == address(0)) return -1 */\n tag_195:\n /* \"contracts/SimpleBond.sol\":11122:11138 uint256 redeemed */\n 0x00\n /* \"contracts/SimpleBond.sol\":11141:11165 getCouponsRedeemed(bond) */\n tag_196\n /* \"contracts/SimpleBond.sol\":11160:11164 bond */\n dup5\n /* \"contracts/SimpleBond.sol\":11141:11159 getCouponsRedeemed */\n tag_110\n /* \"contracts/SimpleBond.sol\":11141:11165 getCouponsRedeemed(bond) */\n jump\t// in\n tag_196:\n /* \"contracts/SimpleBond.sol\":11122:11165 uint256 redeemed = getCouponsRedeemed(bond) */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":11208:11216 redeemed */\n dup1\n /* \"contracts/SimpleBond.sol\":11192:11205 timesToRedeem */\n sload(0x0a)\n /* \"contracts/SimpleBond.sol\":11192:11216 timesToRedeem - redeemed */\n sub\n /* \"contracts/SimpleBond.sol\":11178:11217 return int256(timesToRedeem - redeemed) */\n swap3\n pop\n pop\n pop\n /* \"contracts/SimpleBond.sol\":10895:11225 function getRemainingCoupons(uint256 bond)\r... */\n tag_193:\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":13062:13148 function getCap() public override view returns (uint256) {\r... */\n tag_79:\n /* \"contracts/SimpleBond.sol\":13110:13117 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":13137:13140 cap */\n sload(0x06)\n /* \"contracts/SimpleBond.sol\":13130:13140 return cap */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":13062:13148 function getCap() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":3057:4460 function mintBond(address buyer, uint256 _bondsAmount)\r... */\n tag_83:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":782:787 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:778 msg.sender */\n caller\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/zeppelin/ownership/Ownable.sol\":760:788 require(msg.sender == owner) */\n tag_199\n jumpi\n 0x00\n dup1\n revert\n tag_199:\n /* \"contracts/SimpleBond.sol\":3206:3207 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":3189:3208 buyer != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":3189:3194 buyer */\n dup3\n /* \"contracts/SimpleBond.sol\":3189:3208 buyer != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"contracts/SimpleBond.sol\":3181:3240 require(buyer != address(0), \"Buyer can't be address null\") */\n tag_201\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x1b\n dup2\n mstore\n 0x20\n add\n dup1\n 0x42757965722063616e27742062652061646472657373206e756c6c0000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_201:\n /* \"contracts/SimpleBond.sol\":3288:3289 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":3273:3285 _bondsAmount */\n dup2\n /* \"contracts/SimpleBond.sol\":3273:3289 _bondsAmount > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":3251:3362 require(\r... */\n tag_202\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x2d\n dup2\n mstore\n 0x20\n add\n dup1\n data_d371aa95fc38d397b6bce010a82dabec8f3dd3d17b164d0fcf517a82c7972682\n 0x2d\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_202:\n /* \"contracts/SimpleBond.sol\":3411:3420 loopLimit */\n sload(0x0b)\n /* \"contracts/SimpleBond.sol\":3395:3407 _bondsAmount */\n dup2\n /* \"contracts/SimpleBond.sol\":3395:3420 _bondsAmount <= loopLimit */\n gt\n iszero\n /* \"contracts/SimpleBond.sol\":3373:3505 require(\r... */\n tag_203\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x39\n dup2\n mstore\n 0x20\n add\n dup1\n data_a28bdeea9232af3ce855b549119a45495aa25a2ecee86c1f8357db62713ba21d\n 0x39\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_203:\n /* \"contracts/SimpleBond.sol\":3528:3529 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":3522:3525 cap */\n sload(0x06)\n /* \"contracts/SimpleBond.sol\":3522:3529 cap > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":3518:3711 if (cap > 0) {\r... */\n iszero\n tag_204\n jumpi\n /* \"contracts/SimpleBond.sol\":3605:3608 cap */\n sload(0x06)\n /* \"contracts/SimpleBond.sol\":3572:3601 bondsNumber.add(_bondsAmount) */\n tag_205\n /* \"contracts/SimpleBond.sol\":3588:3600 _bondsAmount */\n dup3\n /* \"contracts/SimpleBond.sol\":3572:3583 bondsNumber */\n sload(0x05)\n /* \"contracts/SimpleBond.sol\":3572:3587 bondsNumber.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":3572:3601 bondsNumber.add(_bondsAmount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_205:\n /* \"contracts/SimpleBond.sol\":3572:3608 bondsNumber.add(_bondsAmount) <= cap */\n gt\n iszero\n /* \"contracts/SimpleBond.sol\":3546:3699 require(\r... */\n tag_206\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x37\n dup2\n mstore\n 0x20\n add\n dup1\n data_ae2c70ac64da4394b6c5f8d93cb20a421119a1652fc0c91db2a9d826547b00e4\n 0x37\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_206:\n /* \"contracts/SimpleBond.sol\":3518:3711 if (cap > 0) {\r... */\n tag_204:\n /* \"contracts/SimpleBond.sol\":3737:3766 bondsNumber.add(_bondsAmount) */\n tag_207\n /* \"contracts/SimpleBond.sol\":3753:3765 _bondsAmount */\n dup2\n /* \"contracts/SimpleBond.sol\":3737:3748 bondsNumber */\n sload(0x05)\n /* \"contracts/SimpleBond.sol\":3737:3752 bondsNumber.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":3737:3766 bondsNumber.add(_bondsAmount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_207:\n /* \"contracts/SimpleBond.sol\":3723:3734 bondsNumber */\n 0x05\n /* \"contracts/SimpleBond.sol\":3723:3766 bondsNumber = bondsNumber.add(_bondsAmount) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":3787:3810 nonce.add(_bondsAmount) */\n tag_208\n /* \"contracts/SimpleBond.sol\":3797:3809 _bondsAmount */\n dup2\n /* \"contracts/SimpleBond.sol\":3787:3792 nonce */\n sload(0x0c)\n /* \"contracts/SimpleBond.sol\":3787:3796 nonce.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":3787:3810 nonce.add(_bondsAmount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_208:\n /* \"contracts/SimpleBond.sol\":3779:3784 nonce */\n 0x0c\n /* \"contracts/SimpleBond.sol\":3779:3810 nonce = nonce.add(_bondsAmount) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":3828:3837 uint256 i */\n 0x00\n /* \"contracts/SimpleBond.sol\":3823:4204 for (uint256 i = 0; i < _bondsAmount; i++) {\r... */\n tag_209:\n /* \"contracts/SimpleBond.sol\":3847:3859 _bondsAmount */\n dup2\n /* \"contracts/SimpleBond.sol\":3843:3844 i */\n dup2\n /* \"contracts/SimpleBond.sol\":3843:3859 i < _bondsAmount */\n lt\n /* \"contracts/SimpleBond.sol\":3823:4204 for (uint256 i = 0; i < _bondsAmount; i++) {\r... */\n iszero\n tag_210\n jumpi\n /* \"contracts/SimpleBond.sol\":4017:4030 now.add(term) */\n tag_212\n /* \"contracts/SimpleBond.sol\":4025:4029 term */\n sload(0x09)\n /* \"contracts/SimpleBond.sol\":4017:4020 now */\n timestamp\n /* \"contracts/SimpleBond.sol\":4017:4024 now.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":4017:4030 now.add(term) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_212:\n /* \"contracts/SimpleBond.sol\":3990:4000 maturities */\n 0x11\n /* \"contracts/SimpleBond.sol\":3990:4014 maturities[nonce.sub(i)] */\n 0x00\n /* \"contracts/SimpleBond.sol\":4001:4013 nonce.sub(i) */\n tag_213\n /* \"contracts/SimpleBond.sol\":4011:4012 i */\n dup5\n /* \"contracts/SimpleBond.sol\":4001:4006 nonce */\n sload(0x0c)\n /* \"contracts/SimpleBond.sol\":4001:4010 nonce.sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":4001:4013 nonce.sub(i) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_213:\n /* \"contracts/SimpleBond.sol\":3990:4014 maturities[nonce.sub(i)] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"contracts/SimpleBond.sol\":3990:4030 maturities[nonce.sub(i)] = now.add(term) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":4067:4072 buyer */\n dup3\n /* \"contracts/SimpleBond.sol\":4045:4050 bonds */\n 0x10\n /* \"contracts/SimpleBond.sol\":4045:4064 bonds[nonce.sub(i)] */\n 0x00\n /* \"contracts/SimpleBond.sol\":4051:4063 nonce.sub(i) */\n tag_214\n /* \"contracts/SimpleBond.sol\":4061:4062 i */\n dup5\n /* \"contracts/SimpleBond.sol\":4051:4056 nonce */\n sload(0x0c)\n /* \"contracts/SimpleBond.sol\":4051:4060 nonce.sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":4051:4063 nonce.sub(i) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_214:\n /* \"contracts/SimpleBond.sol\":4045:4064 bonds[nonce.sub(i)] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/SimpleBond.sol\":4045:4072 bonds[nonce.sub(i)] = buyer */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":4119:4120 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":4087:4102 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":4087:4116 couponsRedeemed[nonce.sub(i)] */\n 0x00\n /* \"contracts/SimpleBond.sol\":4103:4115 nonce.sub(i) */\n tag_215\n /* \"contracts/SimpleBond.sol\":4113:4114 i */\n dup5\n /* \"contracts/SimpleBond.sol\":4103:4108 nonce */\n sload(0x0c)\n /* \"contracts/SimpleBond.sol\":4103:4112 nonce.sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":4103:4115 nonce.sub(i) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_215:\n /* \"contracts/SimpleBond.sol\":4087:4116 couponsRedeemed[nonce.sub(i)] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"contracts/SimpleBond.sol\":4087:4120 couponsRedeemed[nonce.sub(i)] = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":4156:4192 bondsAmount[buyer].add(_bondsAmount) */\n tag_216\n /* \"contracts/SimpleBond.sol\":4179:4191 _bondsAmount */\n dup3\n /* \"contracts/SimpleBond.sol\":4156:4167 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":4156:4174 bondsAmount[buyer] */\n 0x00\n /* \"contracts/SimpleBond.sol\":4168:4173 buyer */\n dup7\n /* \"contracts/SimpleBond.sol\":4156:4174 bondsAmount[buyer] */\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 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":4156:4178 bondsAmount[buyer].add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":4156:4192 bondsAmount[buyer].add(_bondsAmount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_216:\n /* \"contracts/SimpleBond.sol\":4135:4146 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":4135:4153 bondsAmount[buyer] */\n 0x00\n /* \"contracts/SimpleBond.sol\":4147:4152 buyer */\n dup6\n /* \"contracts/SimpleBond.sol\":4135:4153 bondsAmount[buyer] */\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 0x00\n keccak256\n /* \"contracts/SimpleBond.sol\":4135:4192 bondsAmount[buyer] = bondsAmount[buyer].add(_bondsAmount) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":3861:3864 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"contracts/SimpleBond.sol\":3823:4204 for (uint256 i = 0; i < _bondsAmount; i++) {\r... */\n jump(tag_209)\n tag_210:\n pop\n /* \"contracts/SimpleBond.sol\":4228:4403 totalDebt.add(parValue.mul(_bondsAmount)).add(\r... */\n tag_217\n /* \"contracts/SimpleBond.sol\":4288:4392 (parValue.mul(couponRate).div(100)).mul(\r... */\n tag_218\n /* \"contracts/SimpleBond.sol\":4346:4377 timesToRedeem.mul(_bondsAmount) */\n tag_219\n /* \"contracts/SimpleBond.sol\":4364:4376 _bondsAmount */\n dup4\n /* \"contracts/SimpleBond.sol\":4346:4359 timesToRedeem */\n sload(0x0a)\n /* \"contracts/SimpleBond.sol\":4346:4363 timesToRedeem.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":4346:4377 timesToRedeem.mul(_bondsAmount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_219:\n /* \"contracts/SimpleBond.sol\":4289:4322 parValue.mul(couponRate).div(100) */\n tag_220\n /* \"contracts/SimpleBond.sol\":4318:4321 100 */\n 0x64\n /* \"contracts/SimpleBond.sol\":4289:4313 parValue.mul(couponRate) */\n tag_221\n /* \"contracts/SimpleBond.sol\":4302:4312 couponRate */\n sload(0x08)\n /* \"contracts/SimpleBond.sol\":4289:4297 parValue */\n sload(0x07)\n /* \"contracts/SimpleBond.sol\":4289:4301 parValue.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":4289:4313 parValue.mul(couponRate) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_221:\n /* \"contracts/SimpleBond.sol\":4289:4317 parValue.mul(couponRate).div */\n tag_147\n swap1\n /* \"contracts/SimpleBond.sol\":4289:4322 parValue.mul(couponRate).div(100) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_220:\n /* \"contracts/SimpleBond.sol\":4288:4327 (parValue.mul(couponRate).div(100)).mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":4288:4392 (parValue.mul(couponRate).div(100)).mul(\r... */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_218:\n /* \"contracts/SimpleBond.sol\":4228:4269 totalDebt.add(parValue.mul(_bondsAmount)) */\n tag_222\n /* \"contracts/SimpleBond.sol\":4242:4268 parValue.mul(_bondsAmount) */\n tag_223\n /* \"contracts/SimpleBond.sol\":4255:4267 _bondsAmount */\n dup5\n /* \"contracts/SimpleBond.sol\":4242:4250 parValue */\n sload(0x07)\n /* \"contracts/SimpleBond.sol\":4242:4254 parValue.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":4242:4268 parValue.mul(_bondsAmount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_223:\n /* \"contracts/SimpleBond.sol\":4228:4237 totalDebt */\n sload(0x02)\n /* \"contracts/SimpleBond.sol\":4228:4241 totalDebt.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":4228:4269 totalDebt.add(parValue.mul(_bondsAmount)) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_222:\n /* \"contracts/SimpleBond.sol\":4228:4273 totalDebt.add(parValue.mul(_bondsAmount)).add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":4228:4403 totalDebt.add(parValue.mul(_bondsAmount)).add(\r... */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_217:\n /* \"contracts/SimpleBond.sol\":4216:4225 totalDebt */\n 0x02\n /* \"contracts/SimpleBond.sol\":4216:4403 totalDebt = totalDebt.add(parValue.mul(_bondsAmount)).add(\r... */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":4421:4452 MintedBond(buyer, _bondsAmount) */\n 0xf684d4510acd3fe860087ff339d3668df1f4b82d05e5b4cab07130929bfa835d\n /* \"contracts/SimpleBond.sol\":4432:4437 buyer */\n dup3\n /* \"contracts/SimpleBond.sol\":4439:4451 _bondsAmount */\n dup3\n /* \"contracts/SimpleBond.sol\":4421:4452 MintedBond(buyer, _bondsAmount) */\n mload(0x40)\n dup1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n dup3\n dup2\n mstore\n 0x20\n add\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"contracts/SimpleBond.sol\":3057:4460 function mintBond(address buyer, uint256 _bondsAmount)\r... */\n pop\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":14610:14720 function getCouponThreshold() public override view returns (uint256) {\r... */\n tag_86:\n /* \"contracts/SimpleBond.sol\":14670:14677 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":14697:14712 couponThreshold */\n sload(0x0d)\n /* \"contracts/SimpleBond.sol\":14690:14712 return couponThreshold */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":14610:14720 function getCouponThreshold() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1074:1188 function renounceOwnership() public onlyOwner {\r... */\n tag_89:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":782:787 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:778 msg.sender */\n caller\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/zeppelin/ownership/Ownable.sol\":760:788 require(msg.sender == owner) */\n tag_226\n jumpi\n 0x00\n dup1\n revert\n tag_226:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1151:1156 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1132:1157 OwnershipRenounced(owner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1180:1181 0 */\n 0x00\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1164:1169 owner */\n dup1\n 0x00\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1164:1182 owner = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1074:1188 function renounceOwnership() public onlyOwner {\r... */\n jump\t// out\n /* \"contracts/SimpleBond.sol\":4676:6695 function redeemCoupons(uint256[] memory _bonds) public override {\r... */\n tag_96:\n /* \"contracts/SimpleBond.sol\":4775:4776 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":4759:4765 _bonds */\n dup2\n /* \"contracts/SimpleBond.sol\":4759:4772 _bonds.length */\n mload\n /* \"contracts/SimpleBond.sol\":4759:4776 _bonds.length > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":4751:4813 require(_bonds.length > 0, \"Array of bonds must not be empty\") */\n tag_229\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x20\n dup2\n mstore\n 0x20\n add\n dup1\n 0x4172726179206f6620626f6e6473206d757374206e6f7420626520656d707479\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_229:\n /* \"contracts/SimpleBond.sol\":4863:4872 loopLimit */\n sload(0x0b)\n /* \"contracts/SimpleBond.sol\":4846:4852 _bonds */\n dup2\n /* \"contracts/SimpleBond.sol\":4846:4859 _bonds.length */\n mload\n /* \"contracts/SimpleBond.sol\":4846:4872 _bonds.length <= loopLimit */\n gt\n iszero\n /* \"contracts/SimpleBond.sol\":4824:4969 require(\r... */\n tag_230\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x45\n dup2\n mstore\n 0x20\n add\n dup1\n data_ce6209c8fb0465e78fe60ea1770528fcd598d56e616e981aeca74bafbc210042\n 0x45\n swap2\n codecopy\n 0x60\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_230:\n /* \"contracts/SimpleBond.sol\":5019:5041 getBalance(msg.sender) */\n tag_231\n /* \"contracts/SimpleBond.sol\":5030:5040 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":5019:5029 getBalance */\n tag_144\n /* \"contracts/SimpleBond.sol\":5019:5041 getBalance(msg.sender) */\n jump\t// in\n tag_231:\n /* \"contracts/SimpleBond.sol\":5002:5008 _bonds */\n dup2\n /* \"contracts/SimpleBond.sol\":5002:5015 _bonds.length */\n mload\n /* \"contracts/SimpleBond.sol\":5002:5041 _bonds.length <= getBalance(msg.sender) */\n gt\n iszero\n /* \"contracts/SimpleBond.sol\":4980:5161 require(\r... */\n tag_232\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x5c\n dup2\n mstore\n 0x20\n add\n dup1\n data_4e7bab3c6fe7fcb625b19507383c831f702f1e4eb77a04c824753c2e87903f47\n 0x5c\n swap2\n codecopy\n 0x60\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_232:\n /* \"contracts/SimpleBond.sol\":5174:5191 uint256 issueDate */\n 0x00\n /* \"contracts/SimpleBond.sol\":5206:5235 uint256 lastThresholdRedeemed */\n dup1\n /* \"contracts/SimpleBond.sol\":5250:5266 uint256 toRedeem */\n 0x00\n /* \"contracts/SimpleBond.sol\":5288:5297 uint256 i */\n dup1\n /* \"contracts/SimpleBond.sol\":5283:6635 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n tag_233:\n /* \"contracts/SimpleBond.sol\":5307:5313 _bonds */\n dup5\n /* \"contracts/SimpleBond.sol\":5307:5320 _bonds.length */\n mload\n /* \"contracts/SimpleBond.sol\":5303:5304 i */\n dup2\n /* \"contracts/SimpleBond.sol\":5303:5320 i < _bonds.length */\n lt\n /* \"contracts/SimpleBond.sol\":5283:6635 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n iszero\n tag_234\n jumpi\n /* \"contracts/SimpleBond.sol\":5384:5394 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":5364:5394 bonds[_bonds[i]] != msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":5364:5369 bonds */\n 0x10\n /* \"contracts/SimpleBond.sol\":5364:5380 bonds[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":5370:5376 _bonds */\n dup8\n /* \"contracts/SimpleBond.sol\":5377:5378 i */\n dup5\n /* \"contracts/SimpleBond.sol\":5370:5379 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_236\n jumpi\n invalid\n tag_236:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":5364:5380 bonds[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":5364:5394 bonds[_bonds[i]] != msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"contracts/SimpleBond.sol\":5364:5458 bonds[_bonds[i]] != msg.sender ||\r... */\n dup1\n tag_237\n jumpi\n pop\n /* \"contracts/SimpleBond.sol\":5445:5458 timesToRedeem */\n sload(0x0a)\n /* \"contracts/SimpleBond.sol\":5415:5430 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":5415:5441 couponsRedeemed[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":5431:5437 _bonds */\n dup8\n /* \"contracts/SimpleBond.sol\":5438:5439 i */\n dup5\n /* \"contracts/SimpleBond.sol\":5431:5440 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_238\n jumpi\n invalid\n tag_238:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":5415:5441 couponsRedeemed[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":5415:5458 couponsRedeemed[_bonds[i]] == timesToRedeem */\n eq\n /* \"contracts/SimpleBond.sol\":5364:5458 bonds[_bonds[i]] != msg.sender ||\r... */\n tag_237:\n /* \"contracts/SimpleBond.sol\":5342:5482 if (\r... */\n iszero\n tag_239\n jumpi\n /* \"contracts/SimpleBond.sol\":5474:5482 continue */\n jump(tag_235)\n /* \"contracts/SimpleBond.sol\":5342:5482 if (\r... */\n tag_239:\n /* \"contracts/SimpleBond.sol\":5511:5542 maturities[_bonds[i]].sub(term) */\n tag_240\n /* \"contracts/SimpleBond.sol\":5537:5541 term */\n sload(0x09)\n /* \"contracts/SimpleBond.sol\":5511:5521 maturities */\n 0x11\n /* \"contracts/SimpleBond.sol\":5511:5532 maturities[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":5522:5528 _bonds */\n dup9\n /* \"contracts/SimpleBond.sol\":5529:5530 i */\n dup6\n /* \"contracts/SimpleBond.sol\":5522:5531 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_241\n jumpi\n invalid\n tag_241:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":5511:5532 maturities[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":5511:5536 maturities[_bonds[i]].sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":5511:5542 maturities[_bonds[i]].sub(term) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_240:\n /* \"contracts/SimpleBond.sol\":5499:5542 issueDate = maturities[_bonds[i]].sub(term) */\n swap4\n pop\n /* \"contracts/SimpleBond.sol\":5583:5677 issueDate.add(\r... */\n tag_242\n /* \"contracts/SimpleBond.sol\":5615:5662 couponsRedeemed[_bonds[i]].mul(couponThreshold) */\n tag_243\n /* \"contracts/SimpleBond.sol\":5646:5661 couponThreshold */\n sload(0x0d)\n /* \"contracts/SimpleBond.sol\":5615:5630 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":5615:5641 couponsRedeemed[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":5631:5637 _bonds */\n dup10\n /* \"contracts/SimpleBond.sol\":5638:5639 i */\n dup7\n /* \"contracts/SimpleBond.sol\":5631:5640 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_244\n jumpi\n invalid\n tag_244:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":5615:5641 couponsRedeemed[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":5615:5645 couponsRedeemed[_bonds[i]].mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":5615:5662 couponsRedeemed[_bonds[i]].mul(couponThreshold) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_243:\n /* \"contracts/SimpleBond.sol\":5583:5592 issueDate */\n dup6\n /* \"contracts/SimpleBond.sol\":5583:5596 issueDate.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":5583:5677 issueDate.add(\r... */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_242:\n /* \"contracts/SimpleBond.sol\":5559:5677 lastThresholdRedeemed = issueDate.add(\r... */\n swap3\n pop\n /* \"contracts/SimpleBond.sol\":5779:5789 maturities */\n 0x11\n /* \"contracts/SimpleBond.sol\":5779:5800 maturities[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":5790:5796 _bonds */\n dup7\n /* \"contracts/SimpleBond.sol\":5797:5798 i */\n dup4\n /* \"contracts/SimpleBond.sol\":5790:5799 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_245\n jumpi\n invalid\n tag_245:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":5779:5800 maturities[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":5716:5758 lastThresholdRedeemed.add(couponThreshold) */\n tag_246\n /* \"contracts/SimpleBond.sol\":5742:5757 couponThreshold */\n sload(0x0d)\n /* \"contracts/SimpleBond.sol\":5716:5737 lastThresholdRedeemed */\n dup6\n /* \"contracts/SimpleBond.sol\":5716:5741 lastThresholdRedeemed.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":5716:5758 lastThresholdRedeemed.add(couponThreshold) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_246:\n /* \"contracts/SimpleBond.sol\":5716:5800 lastThresholdRedeemed.add(couponThreshold) >=\r... */\n lt\n iszero\n /* \"contracts/SimpleBond.sol\":5716:5869 lastThresholdRedeemed.add(couponThreshold) >=\r... */\n dup1\n tag_247\n jumpi\n pop\n /* \"contracts/SimpleBond.sol\":5827:5869 lastThresholdRedeemed.add(couponThreshold) */\n tag_248\n /* \"contracts/SimpleBond.sol\":5853:5868 couponThreshold */\n sload(0x0d)\n /* \"contracts/SimpleBond.sol\":5827:5848 lastThresholdRedeemed */\n dup5\n /* \"contracts/SimpleBond.sol\":5827:5852 lastThresholdRedeemed.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":5827:5869 lastThresholdRedeemed.add(couponThreshold) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_248:\n /* \"contracts/SimpleBond.sol\":5821:5824 now */\n timestamp\n /* \"contracts/SimpleBond.sol\":5821:5869 now < lastThresholdRedeemed.add(couponThreshold) */\n lt\n /* \"contracts/SimpleBond.sol\":5716:5869 lastThresholdRedeemed.add(couponThreshold) >=\r... */\n tag_247:\n /* \"contracts/SimpleBond.sol\":5694:5893 if (\r... */\n iszero\n tag_249\n jumpi\n /* \"contracts/SimpleBond.sol\":5885:5893 continue */\n jump(tag_235)\n /* \"contracts/SimpleBond.sol\":5694:5893 if (\r... */\n tag_249:\n /* \"contracts/SimpleBond.sol\":5921:5974 (now.sub(lastThresholdRedeemed)).div(couponThreshold) */\n tag_250\n /* \"contracts/SimpleBond.sol\":5958:5973 couponThreshold */\n sload(0x0d)\n /* \"contracts/SimpleBond.sol\":5922:5952 now.sub(lastThresholdRedeemed) */\n tag_251\n /* \"contracts/SimpleBond.sol\":5930:5951 lastThresholdRedeemed */\n dup6\n /* \"contracts/SimpleBond.sol\":5922:5925 now */\n timestamp\n /* \"contracts/SimpleBond.sol\":5922:5929 now.sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":5922:5952 now.sub(lastThresholdRedeemed) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_251:\n /* \"contracts/SimpleBond.sol\":5921:5957 (now.sub(lastThresholdRedeemed)).div */\n tag_147\n swap1\n /* \"contracts/SimpleBond.sol\":5921:5974 (now.sub(lastThresholdRedeemed)).div(couponThreshold) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_250:\n /* \"contracts/SimpleBond.sol\":5910:5974 toRedeem = (now.sub(lastThresholdRedeemed)).div(couponThreshold) */\n swap2\n pop\n /* \"contracts/SimpleBond.sol\":6007:6008 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":5995:6003 toRedeem */\n dup3\n /* \"contracts/SimpleBond.sol\":5995:6008 toRedeem == 0 */\n eq\n /* \"contracts/SimpleBond.sol\":5991:6018 if (toRedeem == 0) continue */\n iszero\n tag_252\n jumpi\n /* \"contracts/SimpleBond.sol\":6010:6018 continue */\n jump(tag_235)\n /* \"contracts/SimpleBond.sol\":5991:6018 if (toRedeem == 0) continue */\n tag_252:\n /* \"contracts/SimpleBond.sol\":6064:6136 couponsRedeemed[_bonds[i]].add(\r... */\n tag_253\n /* \"contracts/SimpleBond.sol\":6113:6121 toRedeem */\n dup3\n /* \"contracts/SimpleBond.sol\":6064:6079 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":6064:6090 couponsRedeemed[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":6080:6086 _bonds */\n dup9\n /* \"contracts/SimpleBond.sol\":6087:6088 i */\n dup6\n /* \"contracts/SimpleBond.sol\":6080:6089 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_254\n jumpi\n invalid\n tag_254:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":6064:6090 couponsRedeemed[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":6064:6094 couponsRedeemed[_bonds[i]].add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":6064:6136 couponsRedeemed[_bonds[i]].add(\r... */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_253:\n /* \"contracts/SimpleBond.sol\":6035:6050 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":6035:6061 couponsRedeemed[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":6051:6057 _bonds */\n dup8\n /* \"contracts/SimpleBond.sol\":6058:6059 i */\n dup5\n /* \"contracts/SimpleBond.sol\":6051:6060 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_255\n jumpi\n invalid\n tag_255:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":6035:6061 couponsRedeemed[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"contracts/SimpleBond.sol\":6035:6136 couponsRedeemed[_bonds[i]] = couponsRedeemed[_bonds[i]].add(\r... */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":6153:6332 getMoney(\r... */\n tag_256\n /* \"contracts/SimpleBond.sol\":6180:6288 toRedeem.mul(\r... */\n tag_257\n /* \"contracts/SimpleBond.sol\":6215:6269 parValue.mul(couponRate).div(10**(parDecimals.add(2))) */\n tag_258\n /* \"contracts/SimpleBond.sol\":6249:6267 parDecimals.add(2) */\n tag_259\n /* \"contracts/SimpleBond.sol\":6265:6266 2 */\n 0x02\n /* \"contracts/SimpleBond.sol\":6249:6260 parDecimals */\n sload(0x04)\n /* \"contracts/SimpleBond.sol\":6249:6264 parDecimals.add */\n tag_154\n swap1\n /* \"contracts/SimpleBond.sol\":6249:6267 parDecimals.add(2) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_259:\n /* \"contracts/SimpleBond.sol\":6244:6246 10 */\n 0x0a\n /* \"contracts/SimpleBond.sol\":6244:6268 10**(parDecimals.add(2)) */\n exp\n /* \"contracts/SimpleBond.sol\":6215:6239 parValue.mul(couponRate) */\n tag_260\n /* \"contracts/SimpleBond.sol\":6228:6238 couponRate */\n sload(0x08)\n /* \"contracts/SimpleBond.sol\":6215:6223 parValue */\n sload(0x07)\n /* \"contracts/SimpleBond.sol\":6215:6227 parValue.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":6215:6239 parValue.mul(couponRate) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_260:\n /* \"contracts/SimpleBond.sol\":6215:6243 parValue.mul(couponRate).div */\n tag_147\n swap1\n /* \"contracts/SimpleBond.sol\":6215:6269 parValue.mul(couponRate).div(10**(parDecimals.add(2))) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_258:\n /* \"contracts/SimpleBond.sol\":6180:6188 toRedeem */\n dup5\n /* \"contracts/SimpleBond.sol\":6180:6192 toRedeem.mul */\n tag_153\n swap1\n /* \"contracts/SimpleBond.sol\":6180:6288 toRedeem.mul(\r... */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_257:\n /* \"contracts/SimpleBond.sol\":6307:6317 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":6153:6161 getMoney */\n tag_261\n /* \"contracts/SimpleBond.sol\":6153:6332 getMoney(\r... */\n jump\t// in\n tag_256:\n /* \"contracts/SimpleBond.sol\":6383:6396 timesToRedeem */\n sload(0x0a)\n /* \"contracts/SimpleBond.sol\":6353:6368 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":6353:6379 couponsRedeemed[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":6369:6375 _bonds */\n dup8\n /* \"contracts/SimpleBond.sol\":6376:6377 i */\n dup5\n /* \"contracts/SimpleBond.sol\":6369:6378 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_262\n jumpi\n invalid\n tag_262:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":6353:6379 couponsRedeemed[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":6353:6396 couponsRedeemed[_bonds[i]] == timesToRedeem */\n eq\n /* \"contracts/SimpleBond.sol\":6349:6624 if (couponsRedeemed[_bonds[i]] == timesToRedeem) {\r... */\n iszero\n tag_263\n jumpi\n /* \"contracts/SimpleBond.sol\":6444:6445 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":6417:6422 bonds */\n 0x10\n /* \"contracts/SimpleBond.sol\":6417:6433 bonds[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":6423:6429 _bonds */\n dup8\n /* \"contracts/SimpleBond.sol\":6430:6431 i */\n dup5\n /* \"contracts/SimpleBond.sol\":6423:6432 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_264\n jumpi\n invalid\n tag_264:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":6417:6433 bonds[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/SimpleBond.sol\":6417:6446 bonds[_bonds[i]] = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":6489:6490 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":6465:6475 maturities */\n 0x11\n /* \"contracts/SimpleBond.sol\":6465:6486 maturities[_bonds[i]] */\n 0x00\n /* \"contracts/SimpleBond.sol\":6476:6482 _bonds */\n dup8\n /* \"contracts/SimpleBond.sol\":6483:6484 i */\n dup5\n /* \"contracts/SimpleBond.sol\":6476:6485 _bonds[i] */\n dup2\n mload\n dup2\n lt\n tag_265\n jumpi\n invalid\n tag_265:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/SimpleBond.sol\":6465:6486 maturities[_bonds[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"contracts/SimpleBond.sol\":6465:6490 maturities[_bonds[i]] = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":6509:6520 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":6509:6532 bondsAmount[msg.sender] */\n 0x00\n /* \"contracts/SimpleBond.sol\":6521:6531 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":6509:6532 bondsAmount[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 0x00\n keccak256\n 0x00\n /* \"contracts/SimpleBond.sol\":6509:6534 bondsAmount[msg.sender]-- */\n dup2\n sload\n dup1\n swap3\n swap2\n swap1\n 0x01\n swap1\n sub\n swap2\n swap1\n pop\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":6555:6608 getMoney(parValue.div((10**parDecimals)), msg.sender) */\n tag_266\n /* \"contracts/SimpleBond.sol\":6564:6595 parValue.div((10**parDecimals)) */\n tag_267\n /* \"contracts/SimpleBond.sol\":6582:6593 parDecimals */\n sload(0x04)\n /* \"contracts/SimpleBond.sol\":6578:6580 10 */\n 0x0a\n /* \"contracts/SimpleBond.sol\":6578:6593 10**parDecimals */\n exp\n /* \"contracts/SimpleBond.sol\":6564:6572 parValue */\n sload(0x07)\n /* \"contracts/SimpleBond.sol\":6564:6576 parValue.div */\n tag_147\n swap1\n /* \"contracts/SimpleBond.sol\":6564:6595 parValue.div((10**parDecimals)) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_267:\n /* \"contracts/SimpleBond.sol\":6597:6607 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":6555:6563 getMoney */\n tag_261\n /* \"contracts/SimpleBond.sol\":6555:6608 getMoney(parValue.div((10**parDecimals)), msg.sender) */\n jump\t// in\n tag_266:\n /* \"contracts/SimpleBond.sol\":6349:6624 if (couponsRedeemed[_bonds[i]] == timesToRedeem) {\r... */\n tag_263:\n /* \"contracts/SimpleBond.sol\":5283:6635 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n tag_235:\n /* \"contracts/SimpleBond.sol\":5322:5325 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"contracts/SimpleBond.sol\":5283:6635 for (uint256 i = 0; i < _bonds.length; i++) {\r... */\n jump(tag_233)\n tag_234:\n pop\n /* \"contracts/SimpleBond.sol\":6668:6678 msg.sender */\n caller\n /* \"contracts/SimpleBond.sol\":6652:6687 RedeemedCoupons(msg.sender, _bonds) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x6842ed68604cbaecf495f440b5684cffd179b26f069e5205907f642a1bc91e4d\n /* \"contracts/SimpleBond.sol\":6680:6686 _bonds */\n dup6\n /* \"contracts/SimpleBond.sol\":6652:6687 RedeemedCoupons(msg.sender, _bonds) */\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 0x20\n mul\n dup1\n dup4\n dup4\n 0x00\n tag_268:\n dup4\n dup2\n lt\n iszero\n tag_270\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_268)\n tag_270:\n pop\n pop\n pop\n pop\n swap1\n pop\n add\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"contracts/SimpleBond.sol\":4676:6695 function redeemCoupons(uint256[] memory _bonds) public override {\r... */\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":14228:14329 function getTotalBonds() public override view returns (uint256) {\r... */\n tag_99:\n /* \"contracts/SimpleBond.sol\":14283:14290 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":14310:14321 bondsNumber */\n sload(0x05)\n /* \"contracts/SimpleBond.sol\":14303:14321 return bondsNumber */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":14228:14329 function getTotalBonds() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":12251:12367 function getMaturity(uint256 bond) public override view returns (uint256) {\r... */\n tag_103:\n /* \"contracts/SimpleBond.sol\":12316:12323 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":12343:12353 maturities */\n 0x11\n /* \"contracts/SimpleBond.sol\":12343:12359 maturities[bond] */\n 0x00\n /* \"contracts/SimpleBond.sol\":12354:12358 bond */\n dup4\n /* \"contracts/SimpleBond.sol\":12343:12359 maturities[bond] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":12336:12359 return maturities[bond] */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":12251:12367 function getMaturity(uint256 bond) public override view returns (uint256) {\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/zeppelin/ownership/Ownable.sol\":279:299 address public owner */\n tag_106:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"contracts/SimpleBond.sol\":11364:11533 function getCouponsRedeemed(uint256 bond)\r... */\n tag_110:\n /* \"contracts/SimpleBond.sol\":11472:11479 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":11504:11519 couponsRedeemed */\n 0x12\n /* \"contracts/SimpleBond.sol\":11504:11525 couponsRedeemed[bond] */\n 0x00\n /* \"contracts/SimpleBond.sol\":11520:11524 bond */\n dup4\n /* \"contracts/SimpleBond.sol\":11504:11525 couponsRedeemed[bond] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":11497:11525 return couponsRedeemed[bond] */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":11364:11533 function getCouponsRedeemed(uint256 bond)\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":14052:14150 function getTotalOwed() public override view returns (uint256) {\r... */\n tag_113:\n /* \"contracts/SimpleBond.sol\":14106:14113 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":14133:14142 totalOwed */\n sload(0x03)\n /* \"contracts/SimpleBond.sol\":14126:14142 return totalOwed */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":14052:14150 function getTotalOwed() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":10636:10748 function getBondOwner(uint256 bond) public override view returns (address) {\r... */\n tag_117:\n /* \"contracts/SimpleBond.sol\":10702:10709 address */\n 0x00\n /* \"contracts/SimpleBond.sol\":10729:10734 bonds */\n 0x10\n /* \"contracts/SimpleBond.sol\":10729:10740 bonds[bond] */\n 0x00\n /* \"contracts/SimpleBond.sol\":10735:10739 bond */\n dup4\n /* \"contracts/SimpleBond.sol\":10729:10740 bonds[bond] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":10722:10740 return bonds[bond] */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":10636:10748 function getBondOwner(uint256 bond) public override view returns (address) {\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":12715:12815 function getCouponRate() public override view returns (uint256) {\r... */\n tag_120:\n /* \"contracts/SimpleBond.sol\":12770:12777 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":12797:12807 couponRate */\n sload(0x08)\n /* \"contracts/SimpleBond.sol\":12790:12807 return couponRate */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":12715:12815 function getCouponRate() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":14391:14481 function getNonce() public override view returns (uint256) {\r... */\n tag_123:\n /* \"contracts/SimpleBond.sol\":14441:14448 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":14468:14473 nonce */\n sload(0x0c)\n /* \"contracts/SimpleBond.sol\":14461:14473 return nonce */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":14391:14481 function getNonce() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":12890:12986 function getParValue() public override view returns (uint256) {\r... */\n tag_126:\n /* \"contracts/SimpleBond.sol\":12943:12950 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":12970:12978 parValue */\n sload(0x07)\n /* \"contracts/SimpleBond.sol\":12963:12978 return parValue */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":12890:12986 function getParValue() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":2675:2862 function changeLoopLimit(uint256 _loopLimit) public override onlyOwner {\r... */\n tag_130:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":782:787 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:778 msg.sender */\n caller\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/zeppelin/ownership/Ownable.sol\":760:788 require(msg.sender == owner) */\n tag_280\n jumpi\n 0x00\n dup1\n revert\n tag_280:\n /* \"contracts/SimpleBond.sol\":2778:2779 0 */\n 0x00\n /* \"contracts/SimpleBond.sol\":2765:2775 _loopLimit */\n dup2\n /* \"contracts/SimpleBond.sol\":2765:2779 _loopLimit > 0 */\n gt\n /* \"contracts/SimpleBond.sol\":2757:2819 require(_loopLimit > 0, \"Loop limit lower than or equal to 0\") */\n tag_282\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x23\n dup2\n mstore\n 0x20\n add\n dup1\n data_dab476c39aca63cd82402c596462855de933204a6081c4499d02fd95ab1ee298\n 0x23\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_282:\n /* \"contracts/SimpleBond.sol\":2844:2854 _loopLimit */\n dup1\n /* \"contracts/SimpleBond.sol\":2832:2841 loopLimit */\n 0x0b\n /* \"contracts/SimpleBond.sol\":2832:2854 loopLimit = _loopLimit */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":2675:2862 function changeLoopLimit(uint256 _loopLimit) public override onlyOwner {\r... */\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":13530:13632 function getParDecimals() public override view returns (uint256) {\r... */\n tag_133:\n /* \"contracts/SimpleBond.sol\":13586:13593 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":13613:13624 parDecimals */\n sload(0x04)\n /* \"contracts/SimpleBond.sol\":13606:13624 return parDecimals */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":13530:13632 function getParDecimals() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/SimpleBond.sol\":11842:11948 function getTimesToRedeem() public override view returns (uint256) {\r... */\n tag_136:\n /* \"contracts/SimpleBond.sol\":11900:11907 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":11927:11940 timesToRedeem */\n sload(0x0a)\n /* \"contracts/SimpleBond.sol\":11920:11940 return timesToRedeem */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":11842:11948 function getTimesToRedeem() public override view returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1356:1461 function transferOwnership(address _newOwner) public onlyOwner {\r... */\n tag_140:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":782:787 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:778 msg.sender */\n caller\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/zeppelin/ownership/Ownable.sol\":760:788 require(msg.sender == owner) */\n tag_286\n jumpi\n 0x00\n dup1\n revert\n tag_286:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1426:1455 _transferOwnership(_newOwner) */\n tag_288\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1445:1454 _newOwner */\n dup2\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1426:1444 _transferOwnership */\n tag_289\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1426:1455 _transferOwnership(_newOwner) */\n jump\t// in\n tag_288:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1356:1461 function transferOwnership(address _newOwner) public onlyOwner {\r... */\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":13271:13385 function getBalance(address who) public override view returns (uint256) {\r... */\n tag_144:\n /* \"contracts/SimpleBond.sol\":13334:13341 uint256 */\n 0x00\n /* \"contracts/SimpleBond.sol\":13361:13372 bondsAmount */\n 0x13\n /* \"contracts/SimpleBond.sol\":13361:13377 bondsAmount[who] */\n 0x00\n /* \"contracts/SimpleBond.sol\":13373:13376 who */\n dup4\n /* \"contracts/SimpleBond.sol\":13361:13377 bondsAmount[who] */\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 0x00\n keccak256\n sload\n /* \"contracts/SimpleBond.sol\":13354:13377 return bondsAmount[who] */\n swap1\n pop\n /* \"contracts/SimpleBond.sol\":13271:13385 function getBalance(address who) public override view returns (uint256) {\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":8983:9221 function payTotalDebt() public payable onlyOwner {\r... */\n tag_146:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":782:787 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:778 msg.sender */\n caller\n /* \"contracts/zeppelin/ownership/Ownable.sol\":768:787 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/zeppelin/ownership/Ownable.sol\":760:788 require(msg.sender == owner) */\n tag_292\n jumpi\n 0x00\n dup1\n revert\n tag_292:\n /* \"contracts/SimpleBond.sol\":9063:9072 totalDebt */\n sload(0x02)\n /* \"contracts/SimpleBond.sol\":9051:9060 msg.value */\n callvalue\n /* \"contracts/SimpleBond.sol\":9051:9072 msg.value < totalDebt */\n lt\n /* \"contracts/SimpleBond.sol\":9043:9121 require(msg.value < totalDebt, \"Transaction amount is higher than total owed\") */\n tag_294\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x2c\n dup2\n mstore\n 0x20\n add\n dup1\n data_4a1306a4c67ab5c338bfd4b4e88e6f85514659738c2675014273bc36b9c7650e\n 0x2c\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_294:\n /* \"contracts/SimpleBond.sol\":9204:9213 msg.value */\n callvalue\n /* \"contracts/SimpleBond.sol\":9191:9200 totalDebt */\n 0x02\n 0x00\n /* \"contracts/SimpleBond.sol\":9191:9213 totalDebt -= msg.value */\n dup3\n dup3\n sload\n sub\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":8983:9221 function payTotalDebt() public payable onlyOwner {\r... */\n jump\t// out\n /* \"contracts/zeppelin/SafeMath.sol\":725:1013 function div(uint256 _a, uint256 _b) internal pure returns (uint256) {\r... */\n tag_147:\n /* \"contracts/zeppelin/SafeMath.sol\":785:792 uint256 */\n 0x00\n /* \"contracts/zeppelin/SafeMath.sol\":1005:1007 _b */\n dup2\n /* \"contracts/zeppelin/SafeMath.sol\":1000:1002 _a */\n dup4\n /* \"contracts/zeppelin/SafeMath.sol\":1000:1007 _a / _b */\n dup2\n tag_296\n jumpi\n invalid\n tag_296:\n div\n /* \"contracts/zeppelin/SafeMath.sol\":993:1007 return _a / _b */\n swap1\n pop\n /* \"contracts/zeppelin/SafeMath.sol\":725:1013 function div(uint256 _a, uint256 _b) internal pure returns (uint256) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/zeppelin/SafeMath.sol\":1130:1249 function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {\r... */\n tag_150:\n /* \"contracts/zeppelin/SafeMath.sol\":1190:1197 uint256 */\n 0x00\n /* \"contracts/zeppelin/SafeMath.sol\":1219:1221 _a */\n dup3\n /* \"contracts/zeppelin/SafeMath.sol\":1213:1215 _b */\n dup3\n /* \"contracts/zeppelin/SafeMath.sol\":1213:1221 _b <= _a */\n gt\n iszero\n /* \"contracts/zeppelin/SafeMath.sol\":1206:1222 assert(_b <= _a) */\n tag_298\n jumpi\n invalid\n tag_298:\n /* \"contracts/zeppelin/SafeMath.sol\":1241:1243 _b */\n dup2\n /* \"contracts/zeppelin/SafeMath.sol\":1236:1238 _a */\n dup4\n /* \"contracts/zeppelin/SafeMath.sol\":1236:1243 _a - _b */\n sub\n /* \"contracts/zeppelin/SafeMath.sol\":1229:1243 return _a - _b */\n swap1\n pop\n /* \"contracts/zeppelin/SafeMath.sol\":1130:1249 function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/zeppelin/SafeMath.sol\":247:638 function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\r... */\n tag_153:\n /* \"contracts/zeppelin/SafeMath.sol\":307:316 uint256 c */\n 0x00\n /* \"contracts/zeppelin/SafeMath.sol\":543:544 0 */\n dup1\n /* \"contracts/zeppelin/SafeMath.sol\":537:539 _a */\n dup4\n /* \"contracts/zeppelin/SafeMath.sol\":537:544 _a == 0 */\n eq\n /* \"contracts/zeppelin/SafeMath.sol\":533:571 if (_a == 0) {\r... */\n iszero\n tag_300\n jumpi\n /* \"contracts/zeppelin/SafeMath.sol\":562:563 0 */\n 0x00\n /* \"contracts/zeppelin/SafeMath.sol\":555:563 return 0 */\n swap1\n pop\n jump(tag_299)\n /* \"contracts/zeppelin/SafeMath.sol\":533:571 if (_a == 0) {\r... */\n tag_300:\n /* \"contracts/zeppelin/SafeMath.sol\":588:590 _b */\n dup2\n /* \"contracts/zeppelin/SafeMath.sol\":583:585 _a */\n dup4\n /* \"contracts/zeppelin/SafeMath.sol\":583:590 _a * _b */\n mul\n /* \"contracts/zeppelin/SafeMath.sol\":579:590 c = _a * _b */\n swap1\n pop\n /* \"contracts/zeppelin/SafeMath.sol\":614:616 _b */\n dup2\n /* \"contracts/zeppelin/SafeMath.sol\":608:610 _a */\n dup4\n /* \"contracts/zeppelin/SafeMath.sol\":604:605 c */\n dup3\n /* \"contracts/zeppelin/SafeMath.sol\":604:610 c / _a */\n dup2\n tag_301\n jumpi\n invalid\n tag_301:\n div\n /* \"contracts/zeppelin/SafeMath.sol\":604:616 c / _a == _b */\n eq\n /* \"contracts/zeppelin/SafeMath.sol\":597:617 assert(c / _a == _b) */\n tag_302\n jumpi\n invalid\n tag_302:\n /* \"contracts/zeppelin/SafeMath.sol\":247:638 function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\r... */\n tag_299:\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/zeppelin/SafeMath.sol\":1316:1448 function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\r... */\n tag_154:\n /* \"contracts/zeppelin/SafeMath.sol\":1376:1385 uint256 c */\n 0x00\n /* \"contracts/zeppelin/SafeMath.sol\":1403:1405 _b */\n dup2\n /* \"contracts/zeppelin/SafeMath.sol\":1398:1400 _a */\n dup4\n /* \"contracts/zeppelin/SafeMath.sol\":1398:1405 _a + _b */\n add\n /* \"contracts/zeppelin/SafeMath.sol\":1394:1405 c = _a + _b */\n swap1\n pop\n /* \"contracts/zeppelin/SafeMath.sol\":1424:1426 _a */\n dup3\n /* \"contracts/zeppelin/SafeMath.sol\":1419:1420 c */\n dup2\n /* \"contracts/zeppelin/SafeMath.sol\":1419:1426 c >= _a */\n lt\n iszero\n /* \"contracts/zeppelin/SafeMath.sol\":1412:1427 assert(c >= _a) */\n tag_304\n jumpi\n invalid\n tag_304:\n /* \"contracts/zeppelin/SafeMath.sol\":1316:1448 function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/SimpleBond.sol\":9679:10001 function getMoney(uint256 amount, address payable receiver) private {\r... */\n tag_261:\n /* \"contracts/SimpleBond.sol\":9919:9927 receiver */\n dup1\n /* \"contracts/SimpleBond.sol\":9919:9936 receiver.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/SimpleBond.sol\":9919:9944 receiver.transfer(amount) */\n 0x08fc\n /* \"contracts/SimpleBond.sol\":9937:9943 amount */\n dup4\n /* \"contracts/SimpleBond.sol\":9919:9944 receiver.transfer(amount) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_307\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_307:\n pop\n /* \"contracts/SimpleBond.sol\":9967:9988 totalDebt.sub(amount) */\n tag_308\n /* \"contracts/SimpleBond.sol\":9981:9987 amount */\n dup3\n /* \"contracts/SimpleBond.sol\":9967:9976 totalDebt */\n sload(0x02)\n /* \"contracts/SimpleBond.sol\":9967:9980 totalDebt.sub */\n tag_150\n swap1\n /* \"contracts/SimpleBond.sol\":9967:9988 totalDebt.sub(amount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_308:\n /* \"contracts/SimpleBond.sol\":9955:9964 totalDebt */\n 0x02\n /* \"contracts/SimpleBond.sol\":9955:9988 totalDebt = totalDebt.sub(amount) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/SimpleBond.sol\":9679:10001 function getMoney(uint256 amount, address payable receiver) private {\r... */\n pop\n pop\n jump\t// out\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1602:1777 function _transferOwnership(address _newOwner) internal {\r... */\n tag_289:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1694:1695 0 */\n 0x00\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1673:1696 _newOwner != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1673:1682 _newOwner */\n dup2\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1673:1696 _newOwner != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1665:1697 require(_newOwner != address(0)) */\n tag_310\n jumpi\n 0x00\n dup1\n revert\n tag_310:\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1737:1746 _newOwner */\n dup1\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1709:1747 OwnershipTransferred(owner, _newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1730:1735 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1709:1747 OwnershipTransferred(owner, _newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1762:1771 _newOwner */\n dup1\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1754:1759 owner */\n 0x00\n dup1\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1754:1771 owner = _newOwner */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/zeppelin/ownership/Ownable.sol\":1602:1777 function _transferOwnership(address _newOwner) internal {\r... */\n pop\n jump\t// out\n stop\n data_4a1306a4c67ab5c338bfd4b4e88e6f85514659738c2675014273bc36b9c7650e 5472616e73616374696f6e20616d6f756e7420697320686967686572207468616e20746f74616c206f776564\n data_4e7bab3c6fe7fcb625b19507383c831f702f1e4eb77a04c824753c2e87903f47 4172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e207468652062616c616e6365206f662074686520626f6e6473206f66207468652073656e646572\n data_709ea4b6d0fcbbc8c153d7f0dcf100053f12c8eee09404f7ae424a13d3fd9476 4f6e6c7920746865206f7261636c6520697320617574686f72697a656420746f2063616c6c20746869732066756e6374696f6e2e\n data_a28bdeea9232af3ce855b549119a45495aa25a2ecee86c1f8357db62713ba21d 416d6f756e74206f6620626f6e647320746f206d696e74206d757374206265206c6f776572207468616e20746865206c6f6f70206c696d6974\n data_ae2c70ac64da4394b6c5f8d93cb20a421119a1652fc0c91db2a9d826547b00e4 546f74616c20616d6f756e74206f6620626f6e6473206d757374206265206c6f776572206f7220657175616c20746f2074686520636170\n data_ce6209c8fb0465e78fe60ea1770528fcd598d56e616e981aeca74bafbc210042 4172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e20746865206c6f6f6f70206c696d6974\n data_d371aa95fc38d397b6bce010a82dabec8f3dd3d17b164d0fcf517a82c7972682 416d6f756e74206f6620626f6e647320746f206d696e74206d75737420626520686967686572207468616e2030\n data_dab476c39aca63cd82402c596462855de933204a6081c4499d02fd95ab1ee298 4c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c20746f2030\n\n auxdata: 0xa2646970667358221220924f6ddd47242160ee4cfeb0d918d6e18d00d1daab5dcb41c0bd985df32dd39d64736f6c634300060c0033\n}\n",
"bytecode": {
"linkReferences": {},
"object": "60806040526000600c556000600d556000600f553480156200002057600080fd5b50604051620029eb380380620029eb83398181016040526101208110156200004757600080fd5b81019080805160405193929190846401000000008211156200006857600080fd5b838201915060208201858111156200007f57600080fd5b82518660018202830111640100000000821117156200009d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000d3578082015181840152602081019050620000b6565b50505050905090810190601f168015620001015780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600089511162000213576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f456d707479206e616d652070726f76696465640000000000000000000000000081525060200191505060405180910390fd5b600086116200026e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620029a66022913960400191505060405180910390fd5b60008811620002e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f506172206c6f776572207468616e206f7220657175616c20300000000000000081525060200191505060405180910390fd5b600085116200035c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5465726d206c6f776572207468616e206f7220657175616c203000000000000081525060200191505060405180910390fd5b60008211620003d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c203081525060200191505060405180910390fd5b600083116200042e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180620029c86023913960400191505060405180910390fd5b88600190805190602001906200044692919062000501565b50876007819055508360068190555081600b819055508660048190555082600a81905550856008819055508460098190555062000496600a54600954620004ec60201b620020281790919060201c565b600d8190555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050620005a7565b6000818381620004f857fe5b04905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200054457805160ff191683800117855562000575565b8280016001018555821562000575579182015b828111156200057457825182559160200191906001019062000557565b5b50905062000584919062000588565b5090565b5b80821115620005a357600081600090555060010162000589565b5090565b6123ef80620005b76000396000f3fe6080604052600436106101bb5760003560e01c80637f1e7d41116100ec578063d561bf531161008a578063e575943611610064578063e5759436146108a1578063f2fde38b146108cc578063f8b2cb4f1461091d578063ff214cbf14610982576101c2565b8063d561bf5314610810578063d87f0afc1461083b578063e0e09e0f14610876576101c2565b806395c8cbc9116100c657806395c8cbc91461072a578063bb305ef214610755578063cb57b0a5146107ba578063d087d288146107e5576101c2565b80637f1e7d411461064b5780638da5cb5b1461069a57806395be1f1a146106db576101c2565b806343b074851161015957806370843ae91161013357806370843ae914610519578063715018a6146105445780637a36c3071461055b5780637aafdeee14610620576101c2565b806343b0748514610444578063554d578d1461049357806366e3d5ac146104be576101c2565b806317d7de7c1161019557806317d7de7c146102695780632b4e4e96146102f957806334ce998a146103de57806339dc486a14610409576101c2565b80630f0044bf146101c4578063112f84e114610213578063124b65b41461023e576101c2565b366101c257005b005b3480156101d057600080fd5b506101fd600480360360208110156101e757600080fd5b810190808035906020019092919050505061098c565b6040518082815260200191505060405180910390f35b34801561021f57600080fd5b50610228610a01565b6040518082815260200191505060405180910390f35b34801561024a57600080fd5b50610253610a47565b6040518082815260200191505060405180910390f35b34801561027557600080fd5b5061027e610a51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102be5780820151818401526020810190506102a3565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030557600080fd5b506103dc6004803603604081101561031c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035957600080fd5b82018360208201111561036b57600080fd5b8035906020019184602083028401116401000000008311171561038d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610af3565b005b3480156103ea57600080fd5b506103f3610f77565b6040518082815260200191505060405180910390f35b34801561041557600080fd5b506104426004803603602081101561042c57600080fd5b8101908080359060200190929190505050610f81565b005b34801561045057600080fd5b5061047d6004803603602081101561046757600080fd5b81019080803590602001909291905050506110fe565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611186565b6040518082815260200191505060405180910390f35b3480156104ca57600080fd5b50610517600480360360408110156104e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611190565b005b34801561052557600080fd5b5061052e61165a565b6040518082815260200191505060405180910390f35b34801561055057600080fd5b50610559611664565b005b34801561056757600080fd5b5061061e6004803603602081101561057e57600080fd5b810190808035906020019064010000000081111561059b57600080fd5b8201836020820111156105ad57600080fd5b803590602001918460208302840111640100000000831117156105cf57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611762565b005b34801561062c57600080fd5b50610635611d1b565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b506106846004803603602081101561066e57600080fd5b8101908080359060200190929190505050611d25565b6040518082815260200191505060405180910390f35b3480156106a657600080fd5b506106af611d42565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b50610714600480360360208110156106fe57600080fd5b8101908080359060200190929190505050611d66565b6040518082815260200191505060405180910390f35b34801561073657600080fd5b5061073f611d83565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b5061078e6004803603602081101561077857600080fd5b8101908080359060200190929190505050611d8d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c657600080fd5b506107cf611dca565b6040518082815260200191505060405180910390f35b3480156107f157600080fd5b506107fa611dd4565b6040518082815260200191505060405180910390f35b34801561081c57600080fd5b50610825611dde565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b506108746004803603602081101561085e57600080fd5b8101908080359060200190929190505050611de8565b005b34801561088257600080fd5b5061088b611ea3565b6040518082815260200191505060405180910390f35b3480156108ad57600080fd5b506108b6611ead565b6040518082815260200191505060405180910390f35b3480156108d857600080fd5b5061091b600480360360208110156108ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b005b34801561092957600080fd5b5061096c6004803603602081101561094057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b6040518082815260200191505060405180910390f35b61098a611f64565b005b6000806109b7600954601160008681526020019081526020016000205461203c90919063ffffffff16565b905060006109f56109e6600d54601260008881526020019081526020016000205461205390919063ffffffff16565b8361208490919063ffffffff16565b90508092505050919050565b600080610a0c611dca565b90506000610a18611dde565b9050610a406064610a32848461205390919063ffffffff16565b61202890919063ffffffff16565b9250505090565b6000600954905090565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae95780601f10610abe57610100808354040283529160200191610ae9565b820191906000526020600020905b815481529060010190602001808311610acc57829003601f168201915b5050505050905090565b6000815111610b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f52656365697665722063616e27742062652061646472657373206e756c6c000081525060200191505060405180910390fd5b610c1633611f1b565b81511115610c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b60005b8151811015610ecc573373ffffffffffffffffffffffffffffffffffffffff1660106000848481518110610ca257fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580610d235750600a5460126000848481518110610d0a57fe5b6020026020010151815260200190815260200160002054145b15610d2d57610ebf565b8260106000848481518110610d3e57fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de56001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203c90919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e7b6001601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080600101915050610c72565b508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f227687bda9848548d0e213bd3dcc76bc21295e33dff6849e2c2bd7c75cb77bf7836040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f60578082015181840152602081019050610f45565b505050509050019250505060405180910390a35050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806122816034913960400191505060405180910390fd5b60148190806001815401808255809150506001900390600052602060002001600090919091909150556110b3611091606461108360085461107560075460055461205390919063ffffffff16565b61205390919063ffffffff16565b61202890919063ffffffff16565b6110a560028461205390919063ffffffff16565b61208490919063ffffffff16565b6003600082825401925050819055507f2b9f2bb7a18512e471caa1d7f4d4f7a05fcdc0b22c1492bfa58ea4803a0683036003546040518082815260200191505060405180910390a150565b60008061110a83611d8d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915050611181565b600061117584611d66565b905080600a5403925050505b919050565b6000600654905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f42757965722063616e27742062652061646472657373206e756c6c000000000081525060200191505060405180910390fd5b600081116112e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061236a602d913960400191505060405180910390fd5b600b5481111561133f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806122b56039913960400191505060405180910390fd5b600060065411156113ba576006546113628260055461208490919063ffffffff16565b11156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806122ee6037913960400191505060405180910390fd5b5b6113cf8160055461208490919063ffffffff16565b6005819055506113ea81600c5461208490919063ffffffff16565b600c8190555060005b81811015611570576114106009544261208490919063ffffffff16565b6011600061142984600c5461203c90919063ffffffff16565b815260200190815260200160002081905550826010600061145584600c5461203c90919063ffffffff16565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260006114bc84600c5461203c90919063ffffffff16565b81526020019081526020016000208190555061152082601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506113f3565b506115fb6115c461158c83600a5461205390919063ffffffff16565b6115b660646115a860085460075461205390919063ffffffff16565b61202890919063ffffffff16565b61205390919063ffffffff16565b6115ed6115dc8460075461205390919063ffffffff16565b60025461208490919063ffffffff16565b61208490919063ffffffff16565b6002819055507ff684d4510acd3fe860087ff339d3668df1f4b82d05e5b4cab07130929bfa835d8282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000600d54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116bc57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008151116117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600b5481511115611835576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806123256045913960600191505060405180910390fd5b61183e33611f1b565b81511115611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b6000806000805b8451811015611c85573373ffffffffffffffffffffffffffffffffffffffff16601060008784815181106118ce57fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158061194f5750600a546012600087848151811061193657fe5b6020026020010151815260200190815260200160002054145b1561195957611c78565b6119946009546011600088858151811061196f57fe5b602002602001015181526020019081526020016000205461203c90919063ffffffff16565b93506119e36119d4600d54601260008986815181106119af57fe5b602002602001015181526020019081526020016000205461205390919063ffffffff16565b8561208490919063ffffffff16565b9250601160008683815181106119f557fe5b6020026020010151815260200190815260200160002054611a21600d548561208490919063ffffffff16565b101580611a415750611a3e600d548461208490919063ffffffff16565b42105b15611a4b57611c78565b611a72600d54611a64854261203c90919063ffffffff16565b61202890919063ffffffff16565b91506000821415611a8257611c78565b611abb8260126000888581518110611a9657fe5b602002602001015181526020019081526020016000205461208490919063ffffffff16565b60126000878481518110611acb57fe5b6020026020010151815260200190815260200160002081905550611b41611b3b611b2c611b04600260045461208490919063ffffffff16565b600a0a611b1e60085460075461205390919063ffffffff16565b61202890919063ffffffff16565b8461205390919063ffffffff16565b3361209b565b600a5460126000878481518110611b5457fe5b60200260200101518152602001908152602001600020541415611c7757600060106000878481518110611b8357fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000878481518110611be957fe5b6020026020010151815260200190815260200160002081905550601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550611c76611c70600454600a0a60075461202890919063ffffffff16565b3361209b565b5b5b808060010191505061189e565b503373ffffffffffffffffffffffffffffffffffffffff167f6842ed68604cbaecf495f440b5684cffd179b26f069e5205907f642a1bc91e4d856040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611d02578082015181840152602081019050611ce7565b505050509050019250505060405180910390a250505050565b6000600554905090565b600060116000838152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060126000838152602001908152602001600020549050919050565b6000600354905090565b60006010600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b6000600c54905090565b6000600754905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4057600080fd5b60008111611e99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806123976023913960400191505060405180910390fd5b80600b8190555050565b6000600454905090565b6000600a54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f0f57600080fd5b611f1881612101565b50565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fbc57600080fd5b6002543410612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f9602c913960400191505060405180910390fd5b34600260008282540392505081905550565b600081838161203357fe5b04905092915050565b60008282111561204857fe5b818303905092915050565b600080831415612066576000905061207e565b81830290508183828161207557fe5b041461207d57fe5b5b92915050565b600081830190508281101561209557fe5b92915050565b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156120e1573d6000803e3d6000fd5b506120f78260025461203c90919063ffffffff16565b6002819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5472616e73616374696f6e20616d6f756e7420697320686967686572207468616e20746f74616c206f7765644172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e207468652062616c616e6365206f662074686520626f6e6473206f66207468652073656e6465724f6e6c7920746865206f7261636c6520697320617574686f72697a656420746f2063616c6c20746869732066756e6374696f6e2e416d6f756e74206f6620626f6e647320746f206d696e74206d757374206265206c6f776572207468616e20746865206c6f6f70206c696d6974546f74616c20616d6f756e74206f6620626f6e6473206d757374206265206c6f776572206f7220657175616c20746f20746865206361704172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e20746865206c6f6f6f70206c696d6974416d6f756e74206f6620626f6e647320746f206d696e74206d75737420626520686967686572207468616e20304c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c20746f2030a2646970667358221220924f6ddd47242160ee4cfeb0d918d6e18d00d1daab5dcb41c0bd985df32dd39d64736f6c634300060c0033436f75706f6e2072617465206c6f776572207468616e206f7220657175616c20302054696d657320746f2072656465656d206c6f776572206f7220657175616c20746f2030",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0xC SSTORE PUSH1 0x0 PUSH1 0xD SSTORE PUSH1 0x0 PUSH1 0xF SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x29EB CODESIZE SUB DUP1 PUSH3 0x29EB DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x120 DUP2 LT ISZERO PUSH3 0x47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x1 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH3 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xD3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0xB6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x101 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 PUSH1 0x40 MSTORE PUSH1 0x20 ADD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP10 MLOAD GT PUSH3 0x213 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x456D707479206E616D652070726F766964656400000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT PUSH3 0x26E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH3 0x29A6 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH3 0x2E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506172206C6F776572207468616E206F7220657175616C203000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 GT PUSH3 0x35C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5465726D206C6F776572207468616E206F7220657175616C2030000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 GT PUSH3 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4C6F6F70206C696D6974206C6F776572207468616E206F7220657175616C2030 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT PUSH3 0x42E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH3 0x29C8 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x446 SWAP3 SWAP2 SWAP1 PUSH3 0x501 JUMP JUMPDEST POP DUP8 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x6 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0xB DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0xA DUP2 SWAP1 SSTORE POP DUP6 PUSH1 0x8 DUP2 SWAP1 SSTORE POP DUP5 PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH3 0x496 PUSH1 0xA SLOAD PUSH1 0x9 SLOAD PUSH3 0x4EC PUSH1 0x20 SHL PUSH3 0x2028 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xE PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP PUSH3 0x5A7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 PUSH3 0x4F8 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP 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 0x544 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x575 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x575 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x574 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x557 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x584 SWAP2 SWAP1 PUSH3 0x588 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x5A3 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x589 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x23EF DUP1 PUSH3 0x5B7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F1E7D41 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xD561BF53 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xE5759436 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE5759436 EQ PUSH2 0x8A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0xF8B2CB4F EQ PUSH2 0x91D JUMPI DUP1 PUSH4 0xFF214CBF EQ PUSH2 0x982 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xD561BF53 EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xD87F0AFC EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE0E09E0F EQ PUSH2 0x876 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x95C8CBC9 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x95C8CBC9 EQ PUSH2 0x72A JUMPI DUP1 PUSH4 0xBB305EF2 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0xCB57B0A5 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xD087D288 EQ PUSH2 0x7E5 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x7F1E7D41 EQ PUSH2 0x64B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0x95BE1F1A EQ PUSH2 0x6DB JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x70843AE9 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x70843AE9 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x7A36C307 EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x7AAFDEEE EQ PUSH2 0x620 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0x554D578D EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x66E3D5AC EQ PUSH2 0x4BE JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x2B4E4E96 EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x34CE998A EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x39DC486A EQ PUSH2 0x409 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xF0044BF EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x112F84E1 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x124B65B4 EQ PUSH2 0x23E JUMPI PUSH2 0x1C2 JUMP JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x98C 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 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH2 0xA01 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 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0xA47 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 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27E PUSH2 0xA51 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 0x2BE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2A3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2EB 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 0x305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xAF3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH2 0xF77 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 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x442 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF81 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10FE 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 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A8 PUSH2 0x1186 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 0x4CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x517 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST 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 0x1190 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x52E PUSH2 0x165A 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 0x550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x559 PUSH2 0x1664 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x1762 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x635 PUSH2 0x1D1B 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 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x684 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D25 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 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AF PUSH2 0x1D42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x714 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D66 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 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73F PUSH2 0x1D83 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 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x78E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CF PUSH2 0x1DCA 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 0x7F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7FA PUSH2 0x1DD4 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 0x81C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x825 PUSH2 0x1DDE 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 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x874 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1DE8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x88B PUSH2 0x1EA3 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 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B6 PUSH2 0x1EAD 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 0x8D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x91B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1EB7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x96C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98A PUSH2 0x1F64 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B7 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9F5 PUSH2 0x9E6 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA0C PUSH2 0x1DCA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA18 PUSH2 0x1DDE JUMP JUMPDEST SWAP1 POP PUSH2 0xA40 PUSH1 0x64 PUSH2 0xA32 DUP5 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 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 0xAE9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xABE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAE9 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 0xACC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xB6A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x52656365697665722063616E27742062652061646472657373206E756C6C0000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC16 CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xECC JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xCA2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0xD23 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD0A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0xD2D JUMPI PUSH2 0xEBF JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD3E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xDE5 PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 0xE7B PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC72 JUMP JUMPDEST POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x227687BDA9848548D0E213BD3DCC76BC21295E33DFF6849E2C2BD7C75CB77BF7 DUP4 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF60 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF45 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1027 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2281 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0x10B3 PUSH2 0x1091 PUSH1 0x64 PUSH2 0x1083 PUSH1 0x8 SLOAD PUSH2 0x1075 PUSH1 0x7 SLOAD PUSH1 0x5 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x10A5 PUSH1 0x2 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2B9F2BB7A18512E471CAA1D7F4D4F7A05FCDC0B22C1492BFA58EA4803A068303 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x110A DUP4 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x116A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 POP POP PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP5 PUSH2 0x1D66 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA SLOAD SUB SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x128B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x42757965722063616E27742062652061646472657373206E756C6C0000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x12E4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x236A PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 GT ISZERO PUSH2 0x133F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22B5 PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD GT ISZERO PUSH2 0x13BA JUMPI PUSH1 0x6 SLOAD PUSH2 0x1362 DUP3 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22EE PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x13CF DUP2 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE POP PUSH2 0x13EA DUP2 PUSH1 0xC SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xC DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1570 JUMPI PUSH2 0x1410 PUSH1 0x9 SLOAD TIMESTAMP PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x11 PUSH1 0x0 PUSH2 0x1429 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x1455 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 PUSH2 0x14BC DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1520 DUP3 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x13F3 JUMP JUMPDEST POP PUSH2 0x15FB PUSH2 0x15C4 PUSH2 0x158C DUP4 PUSH1 0xA SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15B6 PUSH1 0x64 PUSH2 0x15A8 PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x15DC DUP5 PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH32 0xF684D4510ACD3FE860087FF339D3668DF1F4B82D05E5B4CAB07130929BFA835D DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x17D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 MLOAD GT ISZERO PUSH2 0x1835 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x45 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2325 PUSH1 0x45 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x183E CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1C85 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18CE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x194F JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1936 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0x1959 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1994 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x196F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP PUSH2 0x19E3 PUSH2 0x19D4 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP10 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x19AF JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x11 PUSH1 0x0 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19F5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A21 PUSH1 0xD SLOAD DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO DUP1 PUSH2 0x1A41 JUMPI POP PUSH2 0x1A3E PUSH1 0xD SLOAD DUP5 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST TIMESTAMP LT JUMPDEST ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1A72 PUSH1 0xD SLOAD PUSH2 0x1A64 DUP6 TIMESTAMP PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x1A82 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1ABB DUP3 PUSH1 0x12 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A96 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1ACB JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1B41 PUSH2 0x1B3B PUSH2 0x1B2C PUSH2 0x1B04 PUSH1 0x2 PUSH1 0x4 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH2 0x1B1E PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B54 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x1C77 JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B83 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BE9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x13 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 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP PUSH2 0x1C76 PUSH2 0x1C70 PUSH1 0x4 SLOAD PUSH1 0xA EXP PUSH1 0x7 SLOAD PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x189E JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6842ED68604CBAECF495F440B5684CFFD179B26F069E5205907F642A1BC91E4D DUP6 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D02 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CE7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP4 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1E99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2397 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xB DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x2101 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE LT PUSH2 0x2016 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x21F9 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2033 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2048 JUMPI INVALID JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x2066 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x207E JUMP JUMPDEST DUP2 DUP4 MUL SWAP1 POP DUP2 DUP4 DUP3 DUP2 PUSH2 0x2075 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x207D JUMPI INVALID JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x2095 JUMPI INVALID JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x20E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x20F7 DUP3 PUSH1 0x2 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x213B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP INVALID SLOAD PUSH19 0x616E73616374696F6E20616D6F756E74206973 KECCAK256 PUSH9 0x696768657220746861 PUSH15 0x20746F74616C206F77656441727261 PUSH26 0x206F6620626F6E6473206D75737420686176652061206E756D62 PUSH6 0x72206F662062 PUSH16 0x6E6473206C6F776572207468616E2074 PUSH9 0x652062616C616E6365 KECCAK256 PUSH16 0x662074686520626F6E6473206F662074 PUSH9 0x652073656E6465724F PUSH15 0x6C7920746865206F7261636C652069 PUSH20 0x20617574686F72697A656420746F2063616C6C20 PUSH21 0x6869732066756E6374696F6E2E416D6F756E74206F PUSH7 0x20626F6E647320 PUSH21 0x6F206D696E74206D757374206265206C6F77657220 PUSH21 0x68616E20746865206C6F6F70206C696D6974546F74 PUSH2 0x6C20 PUSH2 0x6D6F PUSH22 0x6E74206F6620626F6E6473206D757374206265206C6F PUSH24 0x6572206F7220657175616C20746F20746865206361704172 PUSH19 0x6179206F6620626F6E6473206D757374206861 PUSH23 0x652061206E756D626572206F6620626F6E6473206C6F77 PUSH6 0x72207468616E KECCAK256 PUSH21 0x6865206C6F6F6F70206C696D6974416D6F756E7420 PUSH16 0x6620626F6E647320746F206D696E7420 PUSH14 0x7573742062652068696768657220 PUSH21 0x68616E20304C6F6F70206C696D6974206C6F776572 KECCAK256 PUSH21 0x68616E206F7220657175616C20746F2030A2646970 PUSH7 0x7358221220924F PUSH14 0xDD47242160EE4CFEB0D918D6E18D STOP 0xD1 0xDA 0xAB 0x5D 0xCB COINBASE 0xC0 0xBD SWAP9 0x5D RETURN 0x2D 0xD3 SWAP14 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER NUMBER PUSH16 0x75706F6E2072617465206C6F77657220 PUSH21 0x68616E206F7220657175616C20302054696D657320 PUSH21 0x6F2072656465656D206C6F776572206F7220657175 PUSH2 0x6C20 PUSH21 0x6F2030000000000000000000000000000000000000 ",
"sourceMap": "207:14516:0:-:0;;;697:1;681:17;;731:1;705:27;;784:1;760:25;;1511:1007;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:10:3;623:5;;:18;;;;;;;;;;;;;;;;;;1837:1:0::1;1821:5;1815:19;:23;1807:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;1891:1;1881:7;:11;1873:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:1;1950:4;:8;1942:46;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2015:1;2007:5;:9;1999:48;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2079:1;2066:10;:14;2058:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2153:1;2136:14;:18;2128:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2214:5;2207:4;:12;;;;;;;;;;;;:::i;:::-;;2241:4;2230:8;:15;;;;2262:4;2256:3;:10;;;;2289;2277:9;:22;;;;2324:12;2310:11;:26;;;;2363:14;2347:13;:30;;;;2401:7;2388:10;:20;;;;2426:5;2419:4;:12;;;;2460:23;2469:13;;2460:4;;:8;;;;;;:23;;;;:::i;:::-;2442:15;:41;;;;2503:7;2494:6;;:16;;;;;;;;;;;;;;;;;;1511:1007:::0;;;;;;;;;207:14516;;725:288:2;785:7;1005:2;1000;:7;;;;;;993:14;;725:288;;;;:::o;207:14516:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106101bb5760003560e01c80637f1e7d41116100ec578063d561bf531161008a578063e575943611610064578063e5759436146108a1578063f2fde38b146108cc578063f8b2cb4f1461091d578063ff214cbf14610982576101c2565b8063d561bf5314610810578063d87f0afc1461083b578063e0e09e0f14610876576101c2565b806395c8cbc9116100c657806395c8cbc91461072a578063bb305ef214610755578063cb57b0a5146107ba578063d087d288146107e5576101c2565b80637f1e7d411461064b5780638da5cb5b1461069a57806395be1f1a146106db576101c2565b806343b074851161015957806370843ae91161013357806370843ae914610519578063715018a6146105445780637a36c3071461055b5780637aafdeee14610620576101c2565b806343b0748514610444578063554d578d1461049357806366e3d5ac146104be576101c2565b806317d7de7c1161019557806317d7de7c146102695780632b4e4e96146102f957806334ce998a146103de57806339dc486a14610409576101c2565b80630f0044bf146101c4578063112f84e114610213578063124b65b41461023e576101c2565b366101c257005b005b3480156101d057600080fd5b506101fd600480360360208110156101e757600080fd5b810190808035906020019092919050505061098c565b6040518082815260200191505060405180910390f35b34801561021f57600080fd5b50610228610a01565b6040518082815260200191505060405180910390f35b34801561024a57600080fd5b50610253610a47565b6040518082815260200191505060405180910390f35b34801561027557600080fd5b5061027e610a51565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102be5780820151818401526020810190506102a3565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030557600080fd5b506103dc6004803603604081101561031c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035957600080fd5b82018360208201111561036b57600080fd5b8035906020019184602083028401116401000000008311171561038d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610af3565b005b3480156103ea57600080fd5b506103f3610f77565b6040518082815260200191505060405180910390f35b34801561041557600080fd5b506104426004803603602081101561042c57600080fd5b8101908080359060200190929190505050610f81565b005b34801561045057600080fd5b5061047d6004803603602081101561046757600080fd5b81019080803590602001909291905050506110fe565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611186565b6040518082815260200191505060405180910390f35b3480156104ca57600080fd5b50610517600480360360408110156104e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611190565b005b34801561052557600080fd5b5061052e61165a565b6040518082815260200191505060405180910390f35b34801561055057600080fd5b50610559611664565b005b34801561056757600080fd5b5061061e6004803603602081101561057e57600080fd5b810190808035906020019064010000000081111561059b57600080fd5b8201836020820111156105ad57600080fd5b803590602001918460208302840111640100000000831117156105cf57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611762565b005b34801561062c57600080fd5b50610635611d1b565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b506106846004803603602081101561066e57600080fd5b8101908080359060200190929190505050611d25565b6040518082815260200191505060405180910390f35b3480156106a657600080fd5b506106af611d42565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b50610714600480360360208110156106fe57600080fd5b8101908080359060200190929190505050611d66565b6040518082815260200191505060405180910390f35b34801561073657600080fd5b5061073f611d83565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b5061078e6004803603602081101561077857600080fd5b8101908080359060200190929190505050611d8d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c657600080fd5b506107cf611dca565b6040518082815260200191505060405180910390f35b3480156107f157600080fd5b506107fa611dd4565b6040518082815260200191505060405180910390f35b34801561081c57600080fd5b50610825611dde565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b506108746004803603602081101561085e57600080fd5b8101908080359060200190929190505050611de8565b005b34801561088257600080fd5b5061088b611ea3565b6040518082815260200191505060405180910390f35b3480156108ad57600080fd5b506108b6611ead565b6040518082815260200191505060405180910390f35b3480156108d857600080fd5b5061091b600480360360208110156108ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b005b34801561092957600080fd5b5061096c6004803603602081101561094057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b6040518082815260200191505060405180910390f35b61098a611f64565b005b6000806109b7600954601160008681526020019081526020016000205461203c90919063ffffffff16565b905060006109f56109e6600d54601260008881526020019081526020016000205461205390919063ffffffff16565b8361208490919063ffffffff16565b90508092505050919050565b600080610a0c611dca565b90506000610a18611dde565b9050610a406064610a32848461205390919063ffffffff16565b61202890919063ffffffff16565b9250505090565b6000600954905090565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae95780601f10610abe57610100808354040283529160200191610ae9565b820191906000526020600020905b815481529060010190602001808311610acc57829003601f168201915b5050505050905090565b6000815111610b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f52656365697665722063616e27742062652061646472657373206e756c6c000081525060200191505060405180910390fd5b610c1633611f1b565b81511115610c6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b60005b8151811015610ecc573373ffffffffffffffffffffffffffffffffffffffff1660106000848481518110610ca257fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580610d235750600a5460126000848481518110610d0a57fe5b6020026020010151815260200190815260200160002054145b15610d2d57610ebf565b8260106000848481518110610d3e57fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de56001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203c90919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e7b6001601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080600101915050610c72565b508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f227687bda9848548d0e213bd3dcc76bc21295e33dff6849e2c2bd7c75cb77bf7836040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f60578082015181840152602081019050610f45565b505050509050019250505060405180910390a35050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806122816034913960400191505060405180910390fd5b60148190806001815401808255809150506001900390600052602060002001600090919091909150556110b3611091606461108360085461107560075460055461205390919063ffffffff16565b61205390919063ffffffff16565b61202890919063ffffffff16565b6110a560028461205390919063ffffffff16565b61208490919063ffffffff16565b6003600082825401925050819055507f2b9f2bb7a18512e471caa1d7f4d4f7a05fcdc0b22c1492bfa58ea4803a0683036003546040518082815260200191505060405180910390a150565b60008061110a83611d8d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915050611181565b600061117584611d66565b905080600a5403925050505b919050565b6000600654905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f42757965722063616e27742062652061646472657373206e756c6c000000000081525060200191505060405180910390fd5b600081116112e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061236a602d913960400191505060405180910390fd5b600b5481111561133f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806122b56039913960400191505060405180910390fd5b600060065411156113ba576006546113628260055461208490919063ffffffff16565b11156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806122ee6037913960400191505060405180910390fd5b5b6113cf8160055461208490919063ffffffff16565b6005819055506113ea81600c5461208490919063ffffffff16565b600c8190555060005b81811015611570576114106009544261208490919063ffffffff16565b6011600061142984600c5461203c90919063ffffffff16565b815260200190815260200160002081905550826010600061145584600c5461203c90919063ffffffff16565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260006114bc84600c5461203c90919063ffffffff16565b81526020019081526020016000208190555061152082601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208490919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506113f3565b506115fb6115c461158c83600a5461205390919063ffffffff16565b6115b660646115a860085460075461205390919063ffffffff16565b61202890919063ffffffff16565b61205390919063ffffffff16565b6115ed6115dc8460075461205390919063ffffffff16565b60025461208490919063ffffffff16565b61208490919063ffffffff16565b6002819055507ff684d4510acd3fe860087ff339d3668df1f4b82d05e5b4cab07130929bfa835d8282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000600d54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116bc57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008151116117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4172726179206f6620626f6e6473206d757374206e6f7420626520656d70747981525060200191505060405180910390fd5b600b5481511115611835576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806123256045913960600191505060405180910390fd5b61183e33611f1b565b81511115611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612225605c913960600191505060405180910390fd5b6000806000805b8451811015611c85573373ffffffffffffffffffffffffffffffffffffffff16601060008784815181106118ce57fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158061194f5750600a546012600087848151811061193657fe5b6020026020010151815260200190815260200160002054145b1561195957611c78565b6119946009546011600088858151811061196f57fe5b602002602001015181526020019081526020016000205461203c90919063ffffffff16565b93506119e36119d4600d54601260008986815181106119af57fe5b602002602001015181526020019081526020016000205461205390919063ffffffff16565b8561208490919063ffffffff16565b9250601160008683815181106119f557fe5b6020026020010151815260200190815260200160002054611a21600d548561208490919063ffffffff16565b101580611a415750611a3e600d548461208490919063ffffffff16565b42105b15611a4b57611c78565b611a72600d54611a64854261203c90919063ffffffff16565b61202890919063ffffffff16565b91506000821415611a8257611c78565b611abb8260126000888581518110611a9657fe5b602002602001015181526020019081526020016000205461208490919063ffffffff16565b60126000878481518110611acb57fe5b6020026020010151815260200190815260200160002081905550611b41611b3b611b2c611b04600260045461208490919063ffffffff16565b600a0a611b1e60085460075461205390919063ffffffff16565b61202890919063ffffffff16565b8461205390919063ffffffff16565b3361209b565b600a5460126000878481518110611b5457fe5b60200260200101518152602001908152602001600020541415611c7757600060106000878481518110611b8357fe5b6020026020010151815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000878481518110611be957fe5b6020026020010151815260200190815260200160002081905550601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550611c76611c70600454600a0a60075461202890919063ffffffff16565b3361209b565b5b5b808060010191505061189e565b503373ffffffffffffffffffffffffffffffffffffffff167f6842ed68604cbaecf495f440b5684cffd179b26f069e5205907f642a1bc91e4d856040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611d02578082015181840152602081019050611ce7565b505050509050019250505060405180910390a250505050565b6000600554905090565b600060116000838152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060126000838152602001908152602001600020549050919050565b6000600354905090565b60006010600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600854905090565b6000600c54905090565b6000600754905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4057600080fd5b60008111611e99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806123976023913960400191505060405180910390fd5b80600b8190555050565b6000600454905090565b6000600a54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f0f57600080fd5b611f1881612101565b50565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fbc57600080fd5b6002543410612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f9602c913960400191505060405180910390fd5b34600260008282540392505081905550565b600081838161203357fe5b04905092915050565b60008282111561204857fe5b818303905092915050565b600080831415612066576000905061207e565b81830290508183828161207557fe5b041461207d57fe5b5b92915050565b600081830190508281101561209557fe5b92915050565b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156120e1573d6000803e3d6000fd5b506120f78260025461203c90919063ffffffff16565b6002819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5472616e73616374696f6e20616d6f756e7420697320686967686572207468616e20746f74616c206f7765644172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e207468652062616c616e6365206f662074686520626f6e6473206f66207468652073656e6465724f6e6c7920746865206f7261636c6520697320617574686f72697a656420746f2063616c6c20746869732066756e6374696f6e2e416d6f756e74206f6620626f6e647320746f206d696e74206d757374206265206c6f776572207468616e20746865206c6f6f70206c696d6974546f74616c20616d6f756e74206f6620626f6e6473206d757374206265206c6f776572206f7220657175616c20746f20746865206361704172726179206f6620626f6e6473206d75737420686176652061206e756d626572206f6620626f6e6473206c6f776572207468616e20746865206c6f6f6f70206c696d6974416d6f756e74206f6620626f6e647320746f206d696e74206d75737420626520686967686572207468616e20304c6f6f70206c696d6974206c6f776572207468616e206f7220657175616c20746f2030a2646970667358221220924f6ddd47242160ee4cfeb0d918d6e18d00d1daab5dcb41c0bd985df32dd39d64736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F1E7D41 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xD561BF53 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xE5759436 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE5759436 EQ PUSH2 0x8A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0xF8B2CB4F EQ PUSH2 0x91D JUMPI DUP1 PUSH4 0xFF214CBF EQ PUSH2 0x982 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xD561BF53 EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xD87F0AFC EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE0E09E0F EQ PUSH2 0x876 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x95C8CBC9 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x95C8CBC9 EQ PUSH2 0x72A JUMPI DUP1 PUSH4 0xBB305EF2 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0xCB57B0A5 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xD087D288 EQ PUSH2 0x7E5 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x7F1E7D41 EQ PUSH2 0x64B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0x95BE1F1A EQ PUSH2 0x6DB JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x70843AE9 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x70843AE9 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x7A36C307 EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x7AAFDEEE EQ PUSH2 0x620 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x43B07485 EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0x554D578D EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x66E3D5AC EQ PUSH2 0x4BE JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x2B4E4E96 EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x34CE998A EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x39DC486A EQ PUSH2 0x409 JUMPI PUSH2 0x1C2 JUMP JUMPDEST DUP1 PUSH4 0xF0044BF EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x112F84E1 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x124B65B4 EQ PUSH2 0x23E JUMPI PUSH2 0x1C2 JUMP JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x98C 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 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH2 0xA01 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 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0xA47 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 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27E PUSH2 0xA51 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 0x2BE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2A3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2EB 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 0x305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xAF3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH2 0xF77 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 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x442 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF81 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10FE 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 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A8 PUSH2 0x1186 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 0x4CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x517 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST 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 0x1190 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x52E PUSH2 0x165A 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 0x550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x559 PUSH2 0x1664 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x1762 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x635 PUSH2 0x1D1B 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 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x684 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D25 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 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AF PUSH2 0x1D42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x714 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D66 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 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73F PUSH2 0x1D83 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 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x78E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CF PUSH2 0x1DCA 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 0x7F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7FA PUSH2 0x1DD4 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 0x81C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x825 PUSH2 0x1DDE 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 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x874 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1DE8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x88B PUSH2 0x1EA3 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 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B6 PUSH2 0x1EAD 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 0x8D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x91B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1EB7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x96C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98A PUSH2 0x1F64 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B7 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9F5 PUSH2 0x9E6 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA0C PUSH2 0x1DCA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA18 PUSH2 0x1DDE JUMP JUMPDEST SWAP1 POP PUSH2 0xA40 PUSH1 0x64 PUSH2 0xA32 DUP5 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 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 0xAE9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xABE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAE9 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 0xACC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xB6A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x52656365697665722063616E27742062652061646472657373206E756C6C0000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC16 CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xECC JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xCA2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0xD23 JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD0A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0xD2D JUMPI PUSH2 0xEBF JUMP JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD3E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xDE5 PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 0xE7B PUSH1 0x1 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC72 JUMP JUMPDEST POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x227687BDA9848548D0E213BD3DCC76BC21295E33DFF6849E2C2BD7C75CB77BF7 DUP4 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF60 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF45 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0xE PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1027 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2281 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0x10B3 PUSH2 0x1091 PUSH1 0x64 PUSH2 0x1083 PUSH1 0x8 SLOAD PUSH2 0x1075 PUSH1 0x7 SLOAD PUSH1 0x5 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x10A5 PUSH1 0x2 DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2B9F2BB7A18512E471CAA1D7F4D4F7A05FCDC0B22C1492BFA58EA4803A068303 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x110A DUP4 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x116A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 POP POP PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP5 PUSH2 0x1D66 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA SLOAD SUB SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x128B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x42757965722063616E27742062652061646472657373206E756C6C0000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x12E4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x236A PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 GT ISZERO PUSH2 0x133F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22B5 PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD GT ISZERO PUSH2 0x13BA JUMPI PUSH1 0x6 SLOAD PUSH2 0x1362 DUP3 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x22EE PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x13CF DUP2 PUSH1 0x5 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x5 DUP2 SWAP1 SSTORE POP PUSH2 0x13EA DUP2 PUSH1 0xC SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xC DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1570 JUMPI PUSH2 0x1410 PUSH1 0x9 SLOAD TIMESTAMP PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x11 PUSH1 0x0 PUSH2 0x1429 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x10 PUSH1 0x0 PUSH2 0x1455 DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 PUSH2 0x14BC DUP5 PUSH1 0xC SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1520 DUP3 PUSH1 0x13 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x13F3 JUMP JUMPDEST POP PUSH2 0x15FB PUSH2 0x15C4 PUSH2 0x158C DUP4 PUSH1 0xA SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15B6 PUSH1 0x64 PUSH2 0x15A8 PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x15DC DUP5 PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH32 0xF684D4510ACD3FE860087FF339D3668DF1F4B82D05E5B4CAB07130929BFA835D DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x17D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4172726179206F6620626F6E6473206D757374206E6F7420626520656D707479 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD DUP2 MLOAD GT ISZERO PUSH2 0x1835 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x45 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2325 PUSH1 0x45 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x183E CALLER PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD GT ISZERO PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x5C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2225 PUSH1 0x5C SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1C85 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x18CE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x194F JUMPI POP PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1936 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ JUMPDEST ISZERO PUSH2 0x1959 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1994 PUSH1 0x9 SLOAD PUSH1 0x11 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x196F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP PUSH2 0x19E3 PUSH2 0x19D4 PUSH1 0xD SLOAD PUSH1 0x12 PUSH1 0x0 DUP10 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x19AF JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x11 PUSH1 0x0 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19F5 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1A21 PUSH1 0xD SLOAD DUP6 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO DUP1 PUSH2 0x1A41 JUMPI POP PUSH2 0x1A3E PUSH1 0xD SLOAD DUP5 PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST TIMESTAMP LT JUMPDEST ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1A72 PUSH1 0xD SLOAD PUSH2 0x1A64 DUP6 TIMESTAMP PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x1A82 JUMPI PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1ABB DUP3 PUSH1 0x12 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A96 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1ACB JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1B41 PUSH2 0x1B3B PUSH2 0x1B2C PUSH2 0x1B04 PUSH1 0x2 PUSH1 0x4 SLOAD PUSH2 0x2084 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH2 0x1B1E PUSH1 0x8 SLOAD PUSH1 0x7 SLOAD PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP5 PUSH2 0x2053 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x12 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B54 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO PUSH2 0x1C77 JUMPI PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B83 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BE9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x13 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 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP PUSH2 0x1C76 PUSH2 0x1C70 PUSH1 0x4 SLOAD PUSH1 0xA EXP PUSH1 0x7 SLOAD PUSH2 0x2028 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH2 0x209B JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x189E JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6842ED68604CBAECF495F440B5684CFFD179B26F069E5205907F642A1BC91E4D DUP6 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 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D02 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CE7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 DUP4 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1E99 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x2397 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xB DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F18 DUP2 PUSH2 0x2101 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 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 SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE LT PUSH2 0x2016 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x21F9 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2033 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2048 JUMPI INVALID JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x2066 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x207E JUMP JUMPDEST DUP2 DUP4 MUL SWAP1 POP DUP2 DUP4 DUP3 DUP2 PUSH2 0x2075 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x207D JUMPI INVALID JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x2095 JUMPI INVALID JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x20E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x20F7 DUP3 PUSH1 0x2 SLOAD PUSH2 0x203C SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x213B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP INVALID SLOAD PUSH19 0x616E73616374696F6E20616D6F756E74206973 KECCAK256 PUSH9 0x696768657220746861 PUSH15 0x20746F74616C206F77656441727261 PUSH26 0x206F6620626F6E6473206D75737420686176652061206E756D62 PUSH6 0x72206F662062 PUSH16 0x6E6473206C6F776572207468616E2074 PUSH9 0x652062616C616E6365 KECCAK256 PUSH16 0x662074686520626F6E6473206F662074 PUSH9 0x652073656E6465724F PUSH15 0x6C7920746865206F7261636C652069 PUSH20 0x20617574686F72697A656420746F2063616C6C20 PUSH21 0x6869732066756E6374696F6E2E416D6F756E74206F PUSH7 0x20626F6E647320 PUSH21 0x6F206D696E74206D757374206265206C6F77657220 PUSH21 0x68616E20746865206C6F6F70206C696D6974546F74 PUSH2 0x6C20 PUSH2 0x6D6F PUSH22 0x6E74206F6620626F6E6473206D757374206265206C6F PUSH24 0x6572206F7220657175616C20746F20746865206361704172 PUSH19 0x6179206F6620626F6E6473206D757374206861 PUSH23 0x652061206E756D626572206F6620626F6E6473206C6F77 PUSH6 0x72207468616E KECCAK256 PUSH21 0x6865206C6F6F6F70206C696D6974416D6F756E7420 PUSH16 0x6620626F6E647320746F206D696E7420 PUSH14 0x7573742062652068696768657220 PUSH21 0x68616E20304C6F6F70206C696D6974206C6F776572 KECCAK256 PUSH21 0x68616E206F7220657175616C20746F2030A2646970 PUSH7 0x7358221220924F PUSH14 0xDD47242160EE4CFEB0D918D6E18D STOP 0xD1 0xDA 0xAB 0x5D 0xCB COINBASE 0xC0 0xBD SWAP9 0x5D RETURN 0x2D 0xD3 SWAP14 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "207:14516:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10164:355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12451:199;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12037:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13714:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6892:913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13877:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8218:757;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10895:330;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13062:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3057:1403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14610:110;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1074:114:3;;;;;;;;;;;;;:::i;:::-;;4676:2019:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14228:101;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12251:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;279:20:3;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11364:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14052:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10636:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12715:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14391:90;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12890:96;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2675:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13530:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11842:106;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1356:105:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13271:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8983:238;;;:::i;:::-;;10164:355;10273:7;10298:17;10318:26;10339:4;;10318:10;:16;10329:4;10318:16;;;;;;;;;;;;:20;;:26;;;;:::i;:::-;10298:46;;10357:29;10389:81;10417:42;10443:15;;10417;:21;10433:4;10417:21;;;;;;;;;;;;:25;;:42;;;;:::i;:::-;10389:9;:13;;:81;;;;:::i;:::-;10357:113;;10490:21;10483:28;;;;10164:355;;;:::o;12451:199::-;12510:7;12530:12;12545:15;:13;:15::i;:::-;12530:30;;12573:11;12587:13;:11;:13::i;:::-;12573:27;;12620:22;12638:3;12620:13;12628:4;12620:3;:7;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;12613:29;;;;12451:199;:::o;12037:88::-;12086:7;12113:4;;12106:11;;12037:88;:::o;13714:94::-;13763:13;13796:4;13789:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13714:94;:::o;6892:913::-;7027:1;7011:6;:13;:17;7003:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7104:1;7084:22;;:8;:22;;;;7076:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7191:22;7202:10;7191;:22::i;:::-;7174:6;:13;:39;;7152:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7351:9;7346:393;7370:6;:13;7366:1;:17;7346:393;;;7447:10;7427:30;;:5;:16;7433:6;7440:1;7433:9;;;;;;;;;;;;;;7427:16;;;;;;;;;;;;;;;;;;;;;:30;;;;:94;;;;7508:13;;7478:15;:26;7494:6;7501:1;7494:9;;;;;;;;;;;;;;7478:26;;;;;;;;;;;;:43;7427:94;7405:140;;;7537:8;;7405:140;7581:8;7562:5;:16;7568:6;7575:1;7568:9;;;;;;;;;;;;;;7562:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7630:30;7658:1;7630:11;:23;7642:10;7630:23;;;;;;;;;;;;;;;;:27;;:30;;;;:::i;:::-;7604:11;:23;7616:10;7604:23;;;;;;;;;;;;;;;:56;;;;7699:28;7725:1;7699:11;:21;7711:8;7699:21;;;;;;;;;;;;;;;;:25;;:28;;;;:::i;:::-;7675:11;:21;7687:8;7675:21;;;;;;;;;;;;;;;:52;;;;7346:393;7385:3;;;;;;;7346:393;;;;7780:8;7756:41;;7768:10;7756:41;;;7790:6;7756:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6892:913;;:::o;13877:98::-;13931:7;13958:9;;13951:16;;13877:98;:::o;8218:757::-;7868:6;;;;;;;;;;;7854:20;;:10;:20;;;7846:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8717:10:::1;8733:14;8717:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8843:77;8869:50;8915:3;8869:41;8899:10;;8869:25;8885:8;;8869:11;;:15;;:25;;;;:::i;:::-;:29;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;8843:21;8862:1;8843:14;:18;;:21;;;;:::i;:::-;:25;;:77;;;;:::i;:::-;8830:9;;:90;;;;;;;;;;;8938:27;8955:9;;8938:27;;;;;;;;;;;;;;;;;;8218:757:::0;:::o;10895:330::-;11004:6;11028:13;11044:18;11057:4;11044:12;:18::i;:::-;11028:34;;11096:1;11079:19;;:5;:19;;;11075:34;;;11107:2;11100:9;;;;;11075:34;11122:16;11141:24;11160:4;11141:18;:24::i;:::-;11122:43;;11208:8;11192:13;;:24;11178:39;;;;10895:330;;;;:::o;13062:86::-;13110:7;13137:3;;13130:10;;13062:86;:::o;3057:1403::-;782:5:3;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;3206:1:0::1;3189:19;;:5;:19;;;;3181:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3288:1;3273:12;:16;3251:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3411:9;;3395:12;:25;;3373:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:1;3522:3;;:7;3518:193;;;3605:3;;3572:29;3588:12;3572:11;;:15;;:29;;;;:::i;:::-;:36;;3546:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3518:193;3737:29;3753:12;3737:11;;:15;;:29;;;;:::i;:::-;3723:11;:43;;;;3787:23;3797:12;3787:5;;:9;;:23;;;;:::i;:::-;3779:5;:31;;;;3828:9;3823:381;3847:12;3843:1;:16;3823:381;;;4017:13;4025:4;;4017:3;:7;;:13;;;;:::i;:::-;3990:10;:24;4001:12;4011:1;4001:5;;:9;;:12;;;;:::i;:::-;3990:24;;;;;;;;;;;:40;;;;4067:5;4045;:19;4051:12;4061:1;4051:5;;:9;;:12;;;;:::i;:::-;4045:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4119:1;4087:15;:29;4103:12;4113:1;4103:5;;:9;;:12;;;;:::i;:::-;4087:29;;;;;;;;;;;:33;;;;4156:36;4179:12;4156:11;:18;4168:5;4156:18;;;;;;;;;;;;;;;;:22;;:36;;;;:::i;:::-;4135:11;:18;4147:5;4135:18;;;;;;;;;;;;;;;:57;;;;3861:3;;;;;;;3823:381;;;;4228:175;4288:104;4346:31;4364:12;4346:13;;:17;;:31;;;;:::i;:::-;4289:33;4318:3;4289:24;4302:10;;4289:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;4288:39;;:104;;;;:::i;:::-;4228:41;4242:26;4255:12;4242:8;;:12;;:26;;;;:::i;:::-;4228:9;;:13;;:41;;;;:::i;:::-;:45;;:175;;;;:::i;:::-;4216:9;:187;;;;4421:31;4432:5;4439:12;4421:31;;;;;;;;;;;;;;;;;;;;;;;;;;3057:1403:::0;;:::o;14610:110::-;14670:7;14697:15;;14690:22;;14610:110;:::o;1074:114:3:-;782:5;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;1151:5:::1;::::0;::::1;;;;;;;;1132:25;;;;;;;;;;;;1180:1;1164:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;1074:114::o:0;4676:2019:0:-;4775:1;4759:6;:13;:17;4751:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4863:9;;4846:6;:13;:26;;4824:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5019:22;5030:10;5019;:22::i;:::-;5002:6;:13;:39;;4980:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5174:17;5206:29;5250:16;5288:9;5283:1352;5307:6;:13;5303:1;:17;5283:1352;;;5384:10;5364:30;;:5;:16;5370:6;5377:1;5370:9;;;;;;;;;;;;;;5364:16;;;;;;;;;;;;;;;;;;;;;:30;;;;:94;;;;5445:13;;5415:15;:26;5431:6;5438:1;5431:9;;;;;;;;;;;;;;5415:26;;;;;;;;;;;;:43;5364:94;5342:140;;;5474:8;;5342:140;5511:31;5537:4;;5511:10;:21;5522:6;5529:1;5522:9;;;;;;;;;;;;;;5511:21;;;;;;;;;;;;:25;;:31;;;;:::i;:::-;5499:43;;5583:94;5615:47;5646:15;;5615;:26;5631:6;5638:1;5631:9;;;;;;;;;;;;;;5615:26;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;5583:9;:13;;:94;;;;:::i;:::-;5559:118;;5779:10;:21;5790:6;5797:1;5790:9;;;;;;;;;;;;;;5779:21;;;;;;;;;;;;5716:42;5742:15;;5716:21;:25;;:42;;;;:::i;:::-;:84;;:153;;;;5827:42;5853:15;;5827:21;:25;;:42;;;;:::i;:::-;5821:3;:48;5716:153;5694:199;;;5885:8;;5694:199;5921:53;5958:15;;5922:30;5930:21;5922:3;:7;;:30;;;;:::i;:::-;5921:36;;:53;;;;:::i;:::-;5910:64;;6007:1;5995:8;:13;5991:27;;;6010:8;;5991:27;6064:72;6113:8;6064:15;:26;6080:6;6087:1;6080:9;;;;;;;;;;;;;;6064:26;;;;;;;;;;;;:30;;:72;;;;:::i;:::-;6035:15;:26;6051:6;6058:1;6051:9;;;;;;;;;;;;;;6035:26;;;;;;;;;;;:101;;;;6153:179;6180:108;6215:54;6249:18;6265:1;6249:11;;:15;;:18;;;;:::i;:::-;6244:2;:24;6215;6228:10;;6215:8;;:12;;:24;;;;:::i;:::-;:28;;:54;;;;:::i;:::-;6180:8;:12;;:108;;;;:::i;:::-;6307:10;6153:8;:179::i;:::-;6383:13;;6353:15;:26;6369:6;6376:1;6369:9;;;;;;;;;;;;;;6353:26;;;;;;;;;;;;:43;6349:275;;;6444:1;6417:5;:16;6423:6;6430:1;6423:9;;;;;;;;;;;;;;6417:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;6489:1;6465:10;:21;6476:6;6483:1;6476:9;;;;;;;;;;;;;;6465:21;;;;;;;;;;;:25;;;;6509:11;:23;6521:10;6509:23;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;6555:53;6564:31;6582:11;;6578:2;:15;6564:8;;:12;;:31;;;;:::i;:::-;6597:10;6555:8;:53::i;:::-;6349:275;5283:1352;5322:3;;;;;;;5283:1352;;;;6668:10;6652:35;;;6680:6;6652:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4676:2019;;;;:::o;14228:101::-;14283:7;14310:11;;14303:18;;14228:101;:::o;12251:116::-;12316:7;12343:10;:16;12354:4;12343:16;;;;;;;;;;;;12336:23;;12251:116;;;:::o;279:20:3:-;;;;;;;;;;;;:::o;11364:169:0:-;11472:7;11504:15;:21;11520:4;11504:21;;;;;;;;;;;;11497:28;;11364:169;;;:::o;14052:98::-;14106:7;14133:9;;14126:16;;14052:98;:::o;10636:112::-;10702:7;10729:5;:11;10735:4;10729:11;;;;;;;;;;;;;;;;;;;;;10722:18;;10636:112;;;:::o;12715:100::-;12770:7;12797:10;;12790:17;;12715:100;:::o;14391:90::-;14441:7;14468:5;;14461:12;;14391:90;:::o;12890:96::-;12943:7;12970:8;;12963:15;;12890:96;:::o;2675:187::-;782:5:3;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;2778:1:0::1;2765:10;:14;2757:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2844:10;2832:9;:22;;;;2675:187:::0;:::o;13530:102::-;13586:7;13613:11;;13606:18;;13530:102;:::o;11842:106::-;11900:7;11927:13;;11920:20;;11842:106;:::o;1356:105:3:-;782:5;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;1426:29:::1;1445:9;1426:18;:29::i;:::-;1356:105:::0;:::o;13271:114:0:-;13334:7;13361:11;:16;13373:3;13361:16;;;;;;;;;;;;;;;;13354:23;;13271:114;;;:::o;8983:238::-;782:5:3;;;;;;;;;;768:19;;:10;:19;;;760:28;;;;;;9063:9:0::1;;9051;:21;9043:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9204:9;9191;;:22;;;;;;;;;;;8983:238::o:0;725:288:2:-;785:7;1005:2;1000;:7;;;;;;993:14;;725:288;;;;:::o;1130:119::-;1190:7;1219:2;1213;:8;;1206:16;;;;1241:2;1236;:7;1229:14;;1130:119;;;;:::o;247:391::-;307:9;543:1;537:2;:7;533:38;;;562:1;555:8;;;;533:38;588:2;583;:7;579:11;;614:2;608;604:1;:6;;;;;;:12;597:20;;;;247:391;;;;;:::o;1316:132::-;1376:9;1403:2;1398;:7;1394:11;;1424:2;1419:1;:7;;1412:15;;;;1316:132;;;;:::o;9679:322:0:-;9919:8;:17;;:25;9937:6;9919:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9967:21;9981:6;9967:9;;:13;;:21;;;;:::i;:::-;9955:9;:33;;;;9679:322;;:::o;1602:175:3:-;1694:1;1673:23;;:9;:23;;;;1665:32;;;;;;1737:9;1709:38;;1730:5;;;;;;;;;;1709:38;;;;;;;;;;;;1762:9;1754:5;;:17;;;;;;;;;;;;;;;;;;1602:175;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1839800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "198",
"changeLoopLimit(uint256)": "infinite",
"getBalance(address)": "1284",
"getBondOwner(uint256)": "1287",
"getCap()": "1081",
"getCouponRate()": "1102",
"getCouponThreshold()": "1058",
"getCouponsRedeemed(uint256)": "1268",
"getLastTimeRedeemed(uint256)": "infinite",
"getMaturity(uint256)": "1224",
"getName()": "infinite",
"getNonce()": "1124",
"getParDecimals()": "1102",
"getParValue()": "1058",
"getRemainingCoupons(uint256)": "3095",
"getSimpleInterest()": "infinite",
"getTerm()": "1104",
"getTimesToRedeem()": "1057",
"getTotalBonds()": "1124",
"getTotalDebt()": "1103",
"getTotalOwed()": "1058",
"mintBond(address,uint256)": "infinite",
"owner()": "1112",
"payTotalDebt()": "infinite",
"redeemCoupons(uint256[])": "infinite",
"renounceOwnership()": "23939",
"transfer(address,uint256[])": "infinite",
"transferOwnership(address)": "24479",
"updateTotalOwed(uint256)": "infinite"
},
"internal": {
"getMoney(uint256,address payable)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 207,
"end": 14723,
"name": "MSTORE",
"source": 0
},
{
"begin": 697,
"end": 698,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 681,
"end": 698,
"name": "PUSH",
"source": 0,
"value": "C"
},
{
"begin": 681,
"end": 698,
"name": "SSTORE",
"source": 0
},
{
"begin": 731,
"end": 732,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 705,
"end": 732,
"name": "PUSH",
"source": 0,
"value": "D"
},
{
"begin": 705,
"end": 732,
"name": "SSTORE",
"source": 0
},
{
"begin": 784,
"end": 785,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 760,
"end": 785,
"name": "PUSH",
"source": 0,
"value": "F"
},
{
"begin": 760,
"end": 785,
"name": "SSTORE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ISZERO",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPI",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "REVERT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "CODESIZE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SUB",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "CODECOPY",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1511,
"end": 2518,
"name": "MSTORE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "120"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "LT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ISZERO",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPI",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "REVERT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP5",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "GT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ISZERO",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPI",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "REVERT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP6",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "GT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ISZERO",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPI",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "REVERT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP7",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MUL",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "GT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "GT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "OR",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ISZERO",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPI",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "REVERT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MSTORE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "LT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ISZERO",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPI",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP5",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MSTORE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 1511,
"end": 2518,
"name": "AND",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "ISZERO",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPI",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SUB",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 1511,
"end": 2518,
"name": "DUP4",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "SUB",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 1511,
"end": 2518,
"name": "EXP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SUB",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "NOT",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "AND",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MSTORE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 1511,
"end": 2518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1511,
"end": 2518,
"name": "MSTORE",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "DUP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "MLOAD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1511,
"end": 2518,
"name": "ADD",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP3",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP2",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "SWAP1",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 631,
"end": 641,
"name": "CALLER",
"source": 3
},
{
"begin": 623,
"end": 628,
"name": "PUSH",
"source": 3,
"value": "0"
},
{
"begin": 623,
"end": 628,
"name": "DUP1",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "PUSH",
"source": 3,
"value": "100"
},
{
"begin": 623,
"end": 641,
"name": "EXP",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "DUP2",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "SLOAD",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "DUP2",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "PUSH",
"source": 3,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 623,
"end": 641,
"name": "MUL",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "NOT",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "AND",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "SWAP1",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "DUP4",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "PUSH",
"source": 3,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 623,
"end": 641,
"name": "AND",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "MUL",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "OR",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "SWAP1",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "SSTORE",
"source": 3
},
{
"begin": 623,
"end": 641,
"name": "POP",
"source": 3
},
{
"begin": 1837,
"end": 1838,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1821,
"end": 1826,
"name": "DUP10",
"source": 0
},
{
"begin": 1815,
"end": 1834,
"name": "MLOAD",
"source": 0
},
{
"begin": 1815,
"end": 1838,
"name": "GT",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 1807,
"end": 1862,
"name": "JUMPI",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1807,
"end": 1862,
"name": "MLOAD",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1807,
"end": 1862,
"name": "DUP2",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "MSTORE",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 1807,
"end": 1862,
"name": "ADD",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "DUP1",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "DUP1",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1807,
"end": 1862,
"name": "ADD",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "DUP3",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "DUP2",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "SUB",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "DUP3",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "MSTORE",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "13"
},
{
"begin": 1807,
"end": 1862,
"name": "DUP2",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "MSTORE",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1807,
"end": 1862,
"name": "ADD",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "DUP1",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "456D707479206E616D652070726F766964656400000000000000000000000000"
},
{
"begin": 1807,
"end": 1862,
"name": "DUP2",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "MSTORE",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "POP",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1807,
"end": 1862,
"name": "ADD",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "SWAP2",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "POP",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "POP",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1807,
"end": 1862,
"name": "MLOAD",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "DUP1",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "SWAP2",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "SUB",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "SWAP1",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "REVERT",
"source": 0
},
{
"begin": 1807,
"end": 1862,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 1807,
"end": 1862,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1891,
"end": 1892,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1881,
"end": 1888,
"name": "DUP7",
"source": 0
},
{
"begin": 1881,
"end": 1892,
"name": "GT",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 1873,
"end": 1931,
"name": "JUMPI",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1873,
"end": 1931,
"name": "MLOAD",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1873,
"end": 1931,
"name": "DUP2",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "MSTORE",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 1873,
"end": 1931,
"name": "ADD",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "DUP1",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "DUP1",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1873,
"end": 1931,
"name": "ADD",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "DUP3",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "DUP2",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "SUB",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "DUP3",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "MSTORE",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "22"
},
{
"begin": 1873,
"end": 1931,
"name": "DUP2",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "MSTORE",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1873,
"end": 1931,
"name": "ADD",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "DUP1",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH data",
"source": 0,
"value": "8DD3AB97CBB5D6E9E623DDD1B513CC268F45D07AA8071A98B39D610D12096F0A"
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "22"
},
{
"begin": 1873,
"end": 1931,
"name": "SWAP2",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "CODECOPY",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1873,
"end": 1931,
"name": "ADD",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "SWAP2",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "POP",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "POP",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1873,
"end": 1931,
"name": "MLOAD",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "DUP1",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "SWAP2",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "SUB",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "SWAP1",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "REVERT",
"source": 0
},
{
"begin": 1873,
"end": 1931,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 1873,
"end": 1931,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1957,
"end": 1958,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1950,
"end": 1954,
"name": "DUP9",
"source": 0
},
{
"begin": 1950,
"end": 1958,
"name": "GT",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 1942,
"end": 1988,
"name": "JUMPI",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1942,
"end": 1988,
"name": "MLOAD",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1942,
"end": 1988,
"name": "DUP2",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "MSTORE",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 1942,
"end": 1988,
"name": "ADD",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "DUP1",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "DUP1",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1942,
"end": 1988,
"name": "ADD",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "DUP3",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "DUP2",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "SUB",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "DUP3",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "MSTORE",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "19"
},
{
"begin": 1942,
"end": 1988,
"name": "DUP2",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "MSTORE",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1942,
"end": 1988,
"name": "ADD",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "DUP1",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "506172206C6F776572207468616E206F7220657175616C203000000000000000"
},
{
"begin": 1942,
"end": 1988,
"name": "DUP2",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "MSTORE",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "POP",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1942,
"end": 1988,
"name": "ADD",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "SWAP2",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "POP",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "POP",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1942,
"end": 1988,
"name": "MLOAD",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "DUP1",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "SWAP2",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "SUB",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "SWAP1",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "REVERT",
"source": 0
},
{
"begin": 1942,
"end": 1988,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 1942,
"end": 1988,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2015,
"end": 2016,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2007,
"end": 2012,
"name": "DUP6",
"source": 0
},
{
"begin": 2007,
"end": 2016,
"name": "GT",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 1999,
"end": 2047,
"name": "JUMPI",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1999,
"end": 2047,
"name": "MLOAD",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1999,
"end": 2047,
"name": "DUP2",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "MSTORE",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 1999,
"end": 2047,
"name": "ADD",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "DUP1",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "DUP1",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1999,
"end": 2047,
"name": "ADD",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "DUP3",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "DUP2",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "SUB",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "DUP3",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "MSTORE",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "1A"
},
{
"begin": 1999,
"end": 2047,
"name": "DUP2",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "MSTORE",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1999,
"end": 2047,
"name": "ADD",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "DUP1",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "5465726D206C6F776572207468616E206F7220657175616C2030000000000000"
},
{
"begin": 1999,
"end": 2047,
"name": "DUP2",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "MSTORE",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "POP",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1999,
"end": 2047,
"name": "ADD",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "SWAP2",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "POP",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "POP",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1999,
"end": 2047,
"name": "MLOAD",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "DUP1",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "SWAP2",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "SUB",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "SWAP1",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "REVERT",
"source": 0
},
{
"begin": 1999,
"end": 2047,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 1999,
"end": 2047,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2079,
"end": 2080,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2066,
"end": 2076,
"name": "DUP3",
"source": 0
},
{
"begin": 2066,
"end": 2080,
"name": "GT",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 2058,
"end": 2117,
"name": "JUMPI",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2058,
"end": 2117,
"name": "MLOAD",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 2058,
"end": 2117,
"name": "DUP2",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "MSTORE",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 2058,
"end": 2117,
"name": "ADD",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "DUP1",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "DUP1",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2058,
"end": 2117,
"name": "ADD",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "DUP3",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "DUP2",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "SUB",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "DUP3",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "MSTORE",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2058,
"end": 2117,
"name": "DUP2",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "MSTORE",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2058,
"end": 2117,
"name": "ADD",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "DUP1",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "4C6F6F70206C696D6974206C6F776572207468616E206F7220657175616C2030"
},
{
"begin": 2058,
"end": 2117,
"name": "DUP2",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "MSTORE",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "POP",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2058,
"end": 2117,
"name": "ADD",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "SWAP2",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "POP",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "POP",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2058,
"end": 2117,
"name": "MLOAD",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "DUP1",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "SWAP2",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "SUB",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "SWAP1",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "REVERT",
"source": 0
},
{
"begin": 2058,
"end": 2117,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 2058,
"end": 2117,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2153,
"end": 2154,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2136,
"end": 2150,
"name": "DUP4",
"source": 0
},
{
"begin": 2136,
"end": 2154,
"name": "GT",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 2128,
"end": 2194,
"name": "JUMPI",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2128,
"end": 2194,
"name": "MLOAD",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 2128,
"end": 2194,
"name": "DUP2",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "MSTORE",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 2128,
"end": 2194,
"name": "ADD",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "DUP1",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "DUP1",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2128,
"end": 2194,
"name": "ADD",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "DUP3",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "DUP2",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "SUB",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "DUP3",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "MSTORE",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "23"
},
{
"begin": 2128,
"end": 2194,
"name": "DUP2",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "MSTORE",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2128,
"end": 2194,
"name": "ADD",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "DUP1",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH data",
"source": 0,
"value": "E47924B32EC90782D66A1A7EB0F0AECCC07E7A3A94E19D7CF1EF7BB99E82600F"
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "23"
},
{
"begin": 2128,
"end": 2194,
"name": "SWAP2",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "CODECOPY",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2128,
"end": 2194,
"name": "ADD",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "SWAP2",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "POP",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "POP",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2128,
"end": 2194,
"name": "MLOAD",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "DUP1",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "SWAP2",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "SUB",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "SWAP1",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "REVERT",
"source": 0
},
{
"begin": 2128,
"end": 2194,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 2128,
"end": 2194,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2214,
"end": 2219,
"name": "DUP9",
"source": 0
},
{
"begin": 2207,
"end": 2211,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 2207,
"end": 2219,
"name": "SWAP1",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "DUP1",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "MLOAD",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "SWAP1",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2207,
"end": 2219,
"name": "ADD",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "SWAP1",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 2207,
"end": 2219,
"name": "SWAP3",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "SWAP2",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "SWAP1",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 2207,
"end": 2219,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 2207,
"end": 2219,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 2207,
"end": 2219,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2207,
"end": 2219,
"name": "POP",
"source": 0
},
{
"begin": 2241,
"end": 2245,
"name": "DUP8",
"source": 0
},
{
"begin": 2230,
"end": 2238,
"name": "PUSH",
"source": 0,
"value": "7"
},
{
"begin": 2230,
"end": 2245,
"name": "DUP2",
"source": 0
},
{
"begin": 2230,
"end": 2245,
"name": "SWAP1",
"source": 0
},
{
"begin": 2230,
"end": 2245,
"name": "SSTORE",
"source": 0
},
{
"begin": 2230,
"end": 2245,
"name": "POP",
"source": 0
},
{
"begin": 2262,
"end": 2266,
"name": "DUP4",
"source": 0
},
{
"begin": 2256,
"end": 2259,
"name": "PUSH",
"source": 0,
"value": "6"
},
{
"begin": 2256,
"end": 2266,
"name": "DUP2",
"source": 0
},
{
"begin": 2256,
"end": 2266,
"name": "SWAP1",
"source": 0
},
{
"begin": 2256,
"end": 2266,
"name": "SSTORE",
"source": 0
},
{
"begin": 2256,
"end": 2266,
"name": "POP",
"source": 0
},
{
"begin": 2289,
"end": 2299,
"name": "DUP2",
"source": 0
},
{
"begin": 2277,
"end": 2286,
"name": "PUSH",
"source": 0,
"value": "B"
},
{
"begin": 2277,
"end": 2299,
"name": "DUP2",
"source": 0
},
{
"begin": 2277,
"end": 2299,
"name": "SWAP1",
"source": 0
},
{
"begin": 2277,
"end": 2299,
"name": "SSTORE",
"source": 0
},
{
"begin": 2277,
"end": 2299,
"name": "POP",
"source": 0
},
{
"begin": 2324,
"end": 2336,
"name": "DUP7",
"source": 0
},
{
"begin": 2310,
"end": 2321,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 2310,
"end": 2336,
"name": "DUP2",
"source": 0
},
{
"begin": 2310,
"end": 2336,
"name": "SWAP1",
"source": 0
},
{
"begin": 2310,
"end": 2336,
"name": "SSTORE",
"source": 0
},
{
"begin": 2310,
"end": 2336,
"name": "POP",
"source": 0
},
{
"begin": 2363,
"end": 2377,
"name": "DUP3",
"source": 0
},
{
"begin": 2347,
"end": 2360,
"name": "PUSH",
"source": 0,
"value": "A"
},
{
"begin": 2347,
"end": 2377,
"name": "DUP2",
"source": 0
},
{
"begin": 2347,
"end": 2377,
"name": "SWAP1",
"source": 0
},
{
"begin": 2347,
"end": 2377,
"name": "SSTORE",
"source": 0
},
{
"begin": 2347,
"end": 2377,
"name": "POP",
"source": 0
},
{
"begin": 2401,
"end": 2408,
"name": "DUP6",
"source": 0
},
{
"begin": 2388,
"end": 2398,
"name": "PUSH",
"source": 0,
"value": "8"
},
{
"begin": 2388,
"end": 2408,
"name": "DUP2",
"source": 0
},
{
"begin": 2388,
"end": 2408,
"name": "SWAP1",
"source": 0
},
{
"begin": 2388,
"end": 2408,
"name": "SSTORE",
"source": 0
},
{
"begin": 2388,
"end": 2408,
"name": "POP",
"source": 0
},
{
"begin": 2426,
"end": 2431,
"name": "DUP5",
"source": 0
},
{
"begin": 2419,
"end": 2423,
"name": "PUSH",
"source": 0,
"value": "9"
},
{
"begin": 2419,
"end": 2431,
"name": "DUP2",
"source": 0
},
{
"begin": 2419,
"end": 2431,
"name": "SWAP1",
"source": 0
},
{
"begin": 2419,
"end": 2431,
"name": "SSTORE",
"source": 0
},
{
"begin": 2419,
"end": 2431,
"name": "POP",
"source": 0
},
{
"begin": 2460,
"end": 2483,
"name": "PUSH [tag]",
"source": 0,
"value": "22"
},
{
"begin": 2469,
"end": 2482,
"name": "PUSH",
"source": 0,
"value": "A"
},
{
"begin": 2469,
"end": 2482,
"name": "SLOAD",
"source": 0
},
{
"begin": 2460,
"end": 2464,
"name": "PUSH",
"source": 0,
"value": "9"
},
{
"begin": 2460,
"end": 2464,
"name": "SLOAD",
"source": 0
},
{
"begin": 2460,
"end": 2468,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 2460,
"end": 2468,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2460,
"end": 2468,
"name": "SHL",
"source": 0
},
{
"begin": 2460,
"end": 2468,
"name": "PUSH [tag]",
"source": 0,
"value": "18446744073709551763"
},
{
"begin": 2460,
"end": 2468,
"name": "OR",
"source": 0
},
{
"begin": 2460,
"end": 2468,
"name": "SWAP1",
"source": 0
},
{
"begin": 2460,
"end": 2483,
"name": "SWAP2",
"source": 0
},
{
"begin": 2460,
"end": 2483,
"name": "SWAP1",
"source": 0
},
{
"begin": 2460,
"end": 2483,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2460,
"end": 2483,
"name": "SHR",
"source": 0
},
{
"begin": 2460,
"end": 2483,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 2460,
"end": 2483,
"name": "tag",
"source": 0,
"value": "22"
},
{
"begin": 2460,
"end": 2483,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2442,
"end": 2457,
"name": "PUSH",
"source": 0,
"value": "D"
},
{
"begin": 2442,
"end": 2483,
"name": "DUP2",
"source": 0
},
{
"begin": 2442,
"end": 2483,
"name": "SWAP1",
"source": 0
},
{
"begin": 2442,
"end": 2483,
"name": "SSTORE",
"source": 0
},
{
"begin": 2442,
"end": 2483,
"name": "POP",
"source": 0
},
{
"begin": 2503,
"end": 2510,
"name": "DUP1",
"source": 0
},
{
"begin": 2494,
"end": 2500,
"name": "PUSH",
"source": 0,
"value": "E"
},
{
"begin": 2494,
"end": 2500,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2494,
"end": 2510,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 2494,
"end": 2510,
"name": "EXP",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "DUP2",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "SLOAD",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "DUP2",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2494,
"end": 2510,
"name": "MUL",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "NOT",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "AND",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "SWAP1",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "DUP4",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2494,
"end": 2510,
"name": "AND",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "MUL",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "OR",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "SWAP1",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "SSTORE",
"source": 0
},
{
"begin": 2494,
"end": 2510,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 1511,
"end": 2518,
"name": "POP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 725,
"end": 1013,
"name": "tag",
"source": 2,
"value": "23"
},
{
"begin": 725,
"end": 1013,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 785,
"end": 792,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1005,
"end": 1007,
"name": "DUP2",
"source": 2
},
{
"begin": 1000,
"end": 1002,
"name": "DUP4",
"source": 2
},
{
"begin": 1000,
"end": 1007,
"name": "DUP2",
"source": 2
},
{
"begin": 1000,
"end": 1007,
"name": "PUSH [tag]",
"source": 2,
"value": "26"
},
{
"begin": 1000,
"end": 1007,
"name": "JUMPI",
"source": 2
},
{
"begin": 1000,
"end": 1007,
"name": "INVALID",
"source": 2
},
{
"begin": 1000,
"end": 1007,
"name": "tag",
"source": 2,
"value": "26"
},
{
"begin": 1000,
"end": 1007,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1000,
"end": 1007,
"name": "DIV",
"source": 2
},
{
"begin": 993,
"end": 1007,
"name": "SWAP1",
"source": 2
},
{
"begin": 993,
"end": 1007,
"name": "POP",
"source": 2
},
{
"begin": 725,
"end": 1013,
"name": "SWAP3",
"source": 2
},
{
"begin": 725,
"end": 1013,
"name": "SWAP2",
"source": 2
},
{
"begin": 725,
"end": 1013,
"name": "POP",
"source": 2
},
{
"begin": 725,
"end": 1013,
"name": "POP",
"source": 2
},
{
"begin": 725,
"end": 1013,
"name": "JUMP",
"source": 2,
"value": "[out]"
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SLOAD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 207,
"end": 14723,
"name": "DUP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 207,
"end": 14723,
"name": "AND",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ISZERO",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 207,
"end": 14723,
"name": "MUL",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SUB",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "AND",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DIV",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 207,
"end": 14723,
"name": "MSTORE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 207,
"end": 14723,
"name": "KECCAK256",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DIV",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 207,
"end": 14723,
"name": "LT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "MLOAD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 207,
"end": 14723,
"name": "NOT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "AND",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP4",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "OR",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP6",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SSTORE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "28"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP6",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SSTORE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ISZERO",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ISZERO",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "MLOAD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SSTORE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "30"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "POP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "POP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "31"
},
{
"begin": 207,
"end": 14723,
"name": "SWAP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "32"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "31"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "POP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "32"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP3",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "ISZERO",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 207,
"end": 14723,
"name": "DUP2",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SSTORE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "POP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 207,
"end": 14723,
"name": "ADD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "POP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "SWAP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "24"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 207,
"end": 14723,
"name": "CODECOPY",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 207,
"end": 14723,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220924f6ddd47242160ee4cfeb0d918d6e18d00d1daab5dcb41c0bd985df32dd39d64736f6c634300060c0033",
".code": [
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 207,
"end": 14723,
"name": "MSTORE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 207,
"end": 14723,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "LT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 207,
"end": 14723,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 207,
"end": 14723,
"name": "SHR",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "7F1E7D41"
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "31"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "D561BF53"
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "32"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "E5759436"
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "E5759436"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "F2FDE38B"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "F8B2CB4F"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "FF214CBF"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "D561BF53"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "D87F0AFC"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "25"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "E0E09E0F"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "32"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "95C8CBC9"
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "95C8CBC9"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "BB305EF2"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "CB57B0A5"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "22"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "D087D288"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "7F1E7D41"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "95BE1F1A"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "31"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "43B07485"
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "70843AE9"
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "70843AE9"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "715018A6"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "7A36C307"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "7AAFDEEE"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "36"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "43B07485"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "554D578D"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "66E3D5AC"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "35"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "17D7DE7C"
},
{
"begin": 207,
"end": 14723,
"name": "GT",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "17D7DE7C"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "2B4E4E96"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "34CE998A"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "39DC486A"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "37"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "F0044BF"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "112F84E1"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "DUP1",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH",
"source": 0,
"value": "124B65B4"
},
{
"begin": 207,
"end": 14723,
"name": "EQ",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPI",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "STOP",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 207,
"end": 14723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 207,
"end": 14723,
"name": "STOP",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 10164,
"end": 10519,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "ISZERO",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH [tag]",
"source": 0,
"value": "42"
},
{
"begin": 10164,
"end": 10519,
"name": "JUMPI",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "REVERT",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "tag",
"source": 0,
"value": "42"
},
{
"begin": 10164,
"end": 10519,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "POP",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH [tag]",
"source": 0,
"value": "43"
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SUB",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 10164,
"end": 10519,
"name": "DUP2",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "LT",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "ISZERO",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH [tag]",
"source": 0,
"value": "44"
},
{
"begin": 10164,
"end": 10519,
"name": "JUMPI",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "REVERT",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "tag",
"source": 0,
"value": "44"
},
{
"begin": 10164,
"end": 10519,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP2",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "ADD",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 10164,
"end": 10519,
"name": "ADD",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP3",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP2",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "POP",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "POP",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "POP",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH [tag]",
"source": 0,
"value": "45"
},
{
"begin": 10164,
"end": 10519,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 10164,
"end": 10519,
"name": "tag",
"source": 0,
"value": "43"
},
{
"begin": 10164,
"end": 10519,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 10164,
"end": 10519,
"name": "MLOAD",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP3",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP2",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "MSTORE",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 10164,
"end": 10519,
"name": "ADD",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP2",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "POP",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "POP",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 10164,
"end": 10519,
"name": "MLOAD",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "DUP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP2",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SUB",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "SWAP1",
"source": 0
},
{
"begin": 10164,
"end": 10519,
"name": "RETURN",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 12451,
"end": 12650,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "DUP1",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "ISZERO",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "PUSH [tag]",
"source": 0,
"value": "46"
},
{
"begin": 12451,
"end": 12650,
"name": "JUMPI",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 12451,
"end": 12650,
"name": "DUP1",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "REVERT",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "tag",
"source": 0,
"value": "46"
},
{
"begin": 12451,
"end": 12650,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "POP",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "PUSH [tag]",
"source": 0,
"value": "47"
},
{
"begin": 12451,
"end": 12650,
"name": "PUSH [tag]",
"source": 0,
"value": "48"
},
{
"begin": 12451,
"end": 12650,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 12451,
"end": 12650,
"name": "tag",
"source": 0,
"value": "47"
},
{
"begin": 12451,
"end": 12650,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 12451,
"end": 12650,
"name": "MLOAD",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "DUP1",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "DUP3",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "DUP2",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "MSTORE",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 12451,
"end": 12650,
"name": "ADD",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "SWAP2",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "POP",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "POP",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 12451,
"end": 12650,
"name": "MLOAD",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "DUP1",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "SWAP2",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "SUB",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "SWAP1",
"source": 0
},
{
"begin": 12451,
"end": 12650,
"name": "RETURN",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 12037,
"end": 12125,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "DUP1",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "ISZERO",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "PUSH [tag]",
"source": 0,
"value": "49"
},
{
"begin": 12037,
"end": 12125,
"name": "JUMPI",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 12037,
"end": 12125,
"name": "DUP1",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "REVERT",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "tag",
"source": 0,
"value": "49"
},
{
"begin": 12037,
"end": 12125,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "POP",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "PUSH [tag]",
"source": 0,
"value": "50"
},
{
"begin": 12037,
"end": 12125,
"name": "PUSH [tag]",
"source": 0,
"value": "51"
},
{
"begin": 12037,
"end": 12125,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 12037,
"end": 12125,
"name": "tag",
"source": 0,
"value": "50"
},
{
"begin": 12037,
"end": 12125,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 12037,
"end": 12125,
"name": "MLOAD",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "DUP1",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "DUP3",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "DUP2",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "MSTORE",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 12037,
"end": 12125,
"name": "ADD",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "SWAP2",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "POP",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "POP",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 12037,
"end": 12125,
"name": "MLOAD",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "DUP1",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "SWAP2",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "SUB",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "SWAP1",
"source": 0
},
{
"begin": 12037,
"end": 12125,
"name": "RETURN",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "ISZERO",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH [tag]",
"source": 0,
"value": "52"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPI",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "REVERT",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "tag",
"source": 0,
"value": "52"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH [tag]",
"source": 0,
"value": "53"
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH [tag]",
"source": 0,
"value": "54"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 13714,
"end": 13808,
"name": "tag",
"source": 0,
"value": "53"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 13714,
"end": 13808,
"name": "MLOAD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP3",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SUB",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP3",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MSTORE",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP4",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MLOAD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MSTORE",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MLOAD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP4",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP4",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 13714,
"end": 13808,
"name": "tag",
"source": 0,
"value": "55"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP4",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "LT",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "ISZERO",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH [tag]",
"source": 0,
"value": "57"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPI",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP3",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MLOAD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP5",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MSTORE",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH [tag]",
"source": 0,
"value": "55"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "tag",
"source": 0,
"value": "57"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 13714,
"end": 13808,
"name": "AND",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "ISZERO",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH [tag]",
"source": 0,
"value": "58"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPI",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP3",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SUB",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MLOAD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 13714,
"end": 13808,
"name": "DUP4",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13714,
"end": 13808,
"name": "SUB",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 13714,
"end": 13808,
"name": "EXP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SUB",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "NOT",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "AND",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "MSTORE",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13714,
"end": 13808,
"name": "ADD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "tag",
"source": 0,
"value": "58"
},
{
"begin": 13714,
"end": 13808,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP3",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "POP",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 13714,
"end": 13808,
"name": "MLOAD",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "DUP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP2",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SUB",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "SWAP1",
"source": 0
},
{
"begin": 13714,
"end": 13808,
"name": "RETURN",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ISZERO",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPI",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "REVERT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "tag",
"source": 0,
"value": "59"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH [tag]",
"source": 0,
"value": "60"
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SUB",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "LT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ISZERO",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH [tag]",
"source": 0,
"value": "61"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPI",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "REVERT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "tag",
"source": 0,
"value": "61"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 6892,
"end": 7805,
"name": "AND",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "GT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ISZERO",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH [tag]",
"source": 0,
"value": "62"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPI",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "REVERT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "tag",
"source": 0,
"value": "62"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP4",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "GT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ISZERO",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH [tag]",
"source": 0,
"value": "63"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPI",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "REVERT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "tag",
"source": 0,
"value": "63"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP5",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP4",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "MUL",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP5",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "GT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP4",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "GT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "OR",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ISZERO",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH [tag]",
"source": 0,
"value": "64"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPI",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "REVERT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "tag",
"source": 0,
"value": "64"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "MUL",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 6892,
"end": 7805,
"name": "MLOAD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 6892,
"end": 7805,
"name": "MSTORE",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP4",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "MSTORE",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP4",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP4",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 6892,
"end": 7805,
"name": "MUL",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP5",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "CALLDATACOPY",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP5",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "MSTORE",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 6892,
"end": 7805,
"name": "NOT",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 6892,
"end": 7805,
"name": "DUP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "AND",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "DUP4",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "ADD",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP2",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP3",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "SWAP1",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "POP",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "PUSH [tag]",
"source": 0,
"value": "65"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 6892,
"end": 7805,
"name": "tag",
"source": 0,
"value": "60"
},
{
"begin": 6892,
"end": 7805,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 6892,
"end": 7805,
"name": "STOP",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 13877,
"end": 13975,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "DUP1",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "ISZERO",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "PUSH [tag]",
"source": 0,
"value": "66"
},
{
"begin": 13877,
"end": 13975,
"name": "JUMPI",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 13877,
"end": 13975,
"name": "DUP1",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "REVERT",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "tag",
"source": 0,
"value": "66"
},
{
"begin": 13877,
"end": 13975,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "POP",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "PUSH [tag]",
"source": 0,
"value": "67"
},
{
"begin": 13877,
"end": 13975,
"name": "PUSH [tag]",
"source": 0,
"value": "68"
},
{
"begin": 13877,
"end": 13975,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 13877,
"end": 13975,
"name": "tag",
"source": 0,
"value": "67"
},
{
"begin": 13877,
"end": 13975,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 13877,
"end": 13975,
"name": "MLOAD",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "DUP1",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "DUP3",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "DUP2",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "MSTORE",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13877,
"end": 13975,
"name": "ADD",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "SWAP2",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "POP",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "POP",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 13877,
"end": 13975,
"name": "MLOAD",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "DUP1",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "SWAP2",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "SUB",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "SWAP1",
"source": 0
},
{
"begin": 13877,
"end": 13975,
"name": "RETURN",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 8218,
"end": 8975,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "DUP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "ISZERO",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH [tag]",
"source": 0,
"value": "69"
},
{
"begin": 8218,
"end": 8975,
"name": "JUMPI",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 8218,
"end": 8975,
"name": "DUP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "REVERT",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "tag",
"source": 0,
"value": "69"
},
{
"begin": 8218,
"end": 8975,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "POP",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH [tag]",
"source": 0,
"value": "70"
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 8218,
"end": 8975,
"name": "DUP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "SUB",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8218,
"end": 8975,
"name": "DUP2",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "LT",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "ISZERO",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH [tag]",
"source": 0,
"value": "71"
},
{
"begin": 8218,
"end": 8975,
"name": "JUMPI",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 8218,
"end": 8975,
"name": "DUP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "REVERT",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "tag",
"source": 0,
"value": "71"
},
{
"begin": 8218,
"end": 8975,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "DUP2",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "ADD",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "SWAP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "DUP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "DUP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "SWAP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8218,
"end": 8975,
"name": "ADD",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "SWAP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "SWAP3",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "SWAP2",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "SWAP1",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "POP",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "POP",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "POP",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "PUSH [tag]",
"source": 0,
"value": "72"
},
{
"begin": 8218,
"end": 8975,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 8218,
"end": 8975,
"name": "tag",
"source": 0,
"value": "70"
},
{
"begin": 8218,
"end": 8975,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8218,
"end": 8975,
"name": "STOP",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 10895,
"end": 11225,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "ISZERO",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH [tag]",
"source": 0,
"value": "73"
},
{
"begin": 10895,
"end": 11225,
"name": "JUMPI",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "REVERT",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "tag",
"source": 0,
"value": "73"
},
{
"begin": 10895,
"end": 11225,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "POP",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH [tag]",
"source": 0,
"value": "74"
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SUB",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 10895,
"end": 11225,
"name": "DUP2",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "LT",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "ISZERO",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH [tag]",
"source": 0,
"value": "75"
},
{
"begin": 10895,
"end": 11225,
"name": "JUMPI",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "REVERT",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "tag",
"source": 0,
"value": "75"
},
{
"begin": 10895,
"end": 11225,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP2",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "ADD",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 10895,
"end": 11225,
"name": "ADD",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP3",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP2",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "POP",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "POP",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "POP",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH [tag]",
"source": 0,
"value": "76"
},
{
"begin": 10895,
"end": 11225,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 10895,
"end": 11225,
"name": "tag",
"source": 0,
"value": "74"
},
{
"begin": 10895,
"end": 11225,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 10895,
"end": 11225,
"name": "MLOAD",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP3",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP2",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "MSTORE",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 10895,
"end": 11225,
"name": "ADD",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP2",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "POP",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "POP",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 10895,
"end": 11225,
"name": "MLOAD",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "DUP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP2",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SUB",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "SWAP1",
"source": 0
},
{
"begin": 10895,
"end": 11225,
"name": "RETURN",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 13062,
"end": 13148,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "DUP1",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "ISZERO",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "PUSH [tag]",
"source": 0,
"value": "77"
},
{
"begin": 13062,
"end": 13148,
"name": "JUMPI",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 13062,
"end": 13148,
"name": "DUP1",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "REVERT",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "tag",
"source": 0,
"value": "77"
},
{
"begin": 13062,
"end": 13148,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "POP",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "PUSH [tag]",
"source": 0,
"value": "78"
},
{
"begin": 13062,
"end": 13148,
"name": "PUSH [tag]",
"source": 0,
"value": "79"
},
{
"begin": 13062,
"end": 13148,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 13062,
"end": 13148,
"name": "tag",
"source": 0,
"value": "78"
},
{
"begin": 13062,
"end": 13148,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 13062,
"end": 13148,
"name": "MLOAD",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "DUP1",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "DUP3",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "DUP2",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "MSTORE",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 13062,
"end": 13148,
"name": "ADD",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "SWAP2",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "POP",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "POP",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 13062,
"end": 13148,
"name": "MLOAD",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "DUP1",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "SWAP2",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "SUB",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "SWAP1",
"source": 0
},
{
"begin": 13062,
"end": 13148,
"name": "RETURN",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 3057,
"end": 4460,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "DUP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "ISZERO",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH [tag]",
"source": 0,
"value": "80"
},
{
"begin": 3057,
"end": 4460,
"name": "JUMPI",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 3057,
"end": 4460,
"name": "DUP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "REVERT",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "tag",
"source": 0,
"value": "80"
},
{
"begin": 3057,
"end": 4460,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "POP",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH [tag]",
"source": 0,
"value": "81"
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 3057,
"end": 4460,
"name": "DUP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SUB",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 3057,
"end": 4460,
"name": "DUP2",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "LT",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "ISZERO",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH [tag]",
"source": 0,
"value": "82"
},
{
"begin": 3057,
"end": 4460,
"name": "JUMPI",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 3057,
"end": 4460,
"name": "DUP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "REVERT",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "tag",
"source": 0,
"value": "82"
},
{
"begin": 3057,
"end": 4460,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "DUP2",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "ADD",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "DUP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "DUP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3057,
"end": 4460,
"name": "AND",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3057,
"end": 4460,
"name": "ADD",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP3",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP2",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "DUP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3057,
"end": 4460,
"name": "ADD",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP3",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP2",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "SWAP1",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "POP",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "POP",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "POP",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "PUSH [tag]",
"source": 0,
"value": "83"
},
{
"begin": 3057,
"end": 4460,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 3057,
"end": 4460,
"name": "tag",
"source": 0,
"value": "81"
},
{
"begin": 3057,
"end": 4460,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3057,
"end": 4460,
"name": "STOP",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 14610,
"end": 14720,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "DUP1",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "ISZERO",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "PUSH [tag]",
"source": 0,
"value": "84"
},
{
"begin": 14610,
"end": 14720,
"name": "JUMPI",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 14610,
"end": 14720,
"name": "DUP1",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "REVERT",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "tag",
"source": 0,
"value": "84"
},
{
"begin": 14610,
"end": 14720,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "POP",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "PUSH [tag]",
"source": 0,
"value": "85"
},
{
"begin": 14610,
"end": 14720,
"name": "PUSH [tag]",
"source": 0,
"value": "86"
},
{
"begin": 14610,
"end": 14720,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 14610,
"end": 14720,
"name": "tag",
"source": 0,
"value": "85"
},
{
"begin": 14610,
"end": 14720,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 14610,
"end": 14720,
"name": "MLOAD",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "DUP1",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "DUP3",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "DUP2",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "MSTORE",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 14610,
"end": 14720,
"name": "ADD",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "SWAP2",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "POP",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "POP",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 14610,
"end": 14720,
"name": "MLOAD",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "DUP1",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "SWAP2",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "SUB",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "SWAP1",
"source": 0
},
{
"begin": 14610,
"end": 14720,
"name": "RETURN",
"source": 0
},
{
"begin": 1074,
"end": 1188,
"name": "tag",
"source": 3,
"value": "14"
},
{
"begin": 1074,
"end": 1188,
"name": "JUMPDEST",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "CALLVALUE",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "DUP1",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "ISZERO",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "PUSH [tag]",
"source": 3,
"value": "87"
},
{
"begin": 1074,
"end": 1188,
"name": "JUMPI",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "PUSH",
"source": 3,
"value": "0"
},
{
"begin": 1074,
"end": 1188,
"name": "DUP1",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "REVERT",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "tag",
"source": 3,
"value": "87"
},
{
"begin": 1074,
"end": 1188,
"name": "JUMPDEST",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "POP",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "PUSH [tag]",
"source": 3,
"value": "88"
},
{
"begin": 1074,
"end": 1188,
"name": "PUSH [tag]",
"source": 3,
"value": "89"
},
{
"begin": 1074,
"end": 1188,
"name": "JUMP",
"source": 3,
"value": "[in]"
},
{
"begin": 1074,
"end": 1188,
"name": "tag",
"source": 3,
"value": "88"
},
{
"begin": 1074,
"end": 1188,
"name": "JUMPDEST",
"source": 3
},
{
"begin": 1074,
"end": 1188,
"name": "STOP",
"source": 3
},
{
"begin": 4676,
"end": 6695,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ISZERO",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH [tag]",
"source": 0,
"value": "90"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPI",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "REVERT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "tag",
"source": 0,
"value": "90"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "POP",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH [tag]",
"source": 0,
"value": "91"
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "SUB",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP2",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "LT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ISZERO",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH [tag]",
"source": 0,
"value": "92"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPI",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "REVERT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "tag",
"source": 0,
"value": "92"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP2",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ADD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "SWAP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "SWAP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4676,
"end": 6695,
"name": "ADD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "SWAP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP2",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "GT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ISZERO",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH [tag]",
"source": 0,
"value": "93"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPI",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "REVERT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "tag",
"source": 0,
"value": "93"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP3",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ADD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP4",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP3",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ADD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "GT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ISZERO",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH [tag]",
"source": 0,
"value": "94"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPI",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "REVERT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "tag",
"source": 0,
"value": "94"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "SWAP1",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4676,
"end": 6695,
"name": "ADD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "SWAP2",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP5",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP4",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "MUL",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "DUP5",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ADD",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "GT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 4676,
"end": 6695,
"name": "DUP4",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "GT",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "OR",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "ISZERO",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH [tag]",
"source": 0,
"value": "95"
},
{
"begin": 4676,
"end": 6695,
"name": "JUMPI",
"source": 0
},
{
"begin": 4676,
"end": 6695,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4676,
View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

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