Skip to content

Instantly share code, notes, and snippets.

@asmitb127
Created January 14, 2022 06:38
Show Gist options
  • Save asmitb127/29c068fa048e9a2aab78cd60bd880259 to your computer and use it in GitHub Desktop.
Save asmitb127/29c068fa048e9a2aab78cd60bd880259 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_241": {
"entryPoint": null,
"id": 241,
"parameterSlots": 0,
"returnSlots": 0
},
"@_msgSender_210": {
"entryPoint": null,
"id": 210,
"parameterSlots": 0,
"returnSlots": 1
},
"@_transferOwnership_321": {
"entryPoint": 122,
"id": 321,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052600380546001600160a01b0319908116730bf6ddcfee517ccb2e107ab0cf00b224a964af63179091556004805490911673136bd5c88f586988bea55e29d9649e98da512adc179055678ac7230489e800006005556201518060065534801561006b57600080fd5b506100753361007a565b6100ca565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119e9806100d96000396000f3fe6080604052600436106101355760003560e01c8063715018a6116100ab578063ae169a501161006f578063ae169a5014610386578063b4231563146103a6578063bacccabe146103c6578063bc1a73d6146103e6578063c1dfa0bb1461047a578063f2fde38b1461049a57600080fd5b8063715018a6146102e657806374e74760146102fb57806380c48c0b14610328578063862bc2c5146103485780638da5cb5b1461036857600080fd5b80633ccfd60b116100fd5780633ccfd60b1461023e57806350baa622146102465780635eeec224146102665780636954f3e5146102865780636e75f5c7146102a65780636eb604e0146102c657600080fd5b806301ffc9a71461013a5780630c313ef714610180578063150b7a021461019f57806321205fed146101e457806336b2c4b214610206575b600080fd5b34801561014657600080fd5b5061016b6101553660046117c2565b6001600160e01b031916630a85bd0160e11b1490565b60405190151581526020015b60405180910390f35b34801561018c57600080fd5b506002545b604051908152602001610177565b3480156101ab57600080fd5b506101cb6101ba36600461163c565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001610177565b3480156101f057600080fd5b506102046101ff3660046116db565b6104ba565b005b34801561021257600080fd5b50600454610226906001600160a01b031681565b6040516001600160a01b039091168152602001610177565b6102046104fe565b34801561025257600080fd5b506102046102613660046117ec565b610594565b34801561027257600080fd5b506102046102813660046117ec565b610643565b34801561029257600080fd5b506102046102a13660046116db565b610727565b3480156102b257600080fd5b506102046102c13660046116db565b610767565b3480156102d257600080fd5b506102046102e13660046117ec565b6107a7565b3480156102f257600080fd5b50610204610aed565b34801561030757600080fd5b5061031b610316366004611602565b610b23565b6040516101779190611842565b34801561033457600080fd5b50610191610343366004611602565b610d1e565b34801561035457600080fd5b506102046103633660046116db565b610e54565b34801561037457600080fd5b506000546001600160a01b0316610226565b34801561039257600080fd5b506102046103a13660046117ec565b610e94565b3480156103b257600080fd5b506101916103c13660046117ec565b611105565b3480156103d257600080fd5b50600354610226906001600160a01b031681565b3480156103f257600080fd5b506104426104013660046117ec565b600160208190526000918252604090912080549181015460028201546003909201546001600160a01b0390931692909160ff80821692610100909204169085565b604080516001600160a01b0390961686526020860194909452911515928401929092529015156060830152608082015260a001610177565b34801561048657600080fd5b506102046104953660046117ec565b611126565b3480156104a657600080fd5b506102046104b5366004611602565b6111ff565b60005b81518110156104fa576104e88282815181106104db576104db611972565b6020026020010151610e94565b806104f28161192b565b9150506104bd565b5050565b6000546001600160a01b031633146105315760405162461bcd60e51b815260040161052890611886565b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461057e576040519150601f19603f3d011682016040523d82523d6000602084013e610583565b606091505b505090508061059157600080fd5b50565b6000546001600160a01b031633146105be5760405162461bcd60e51b815260040161052890611886565b6004805460405163a9059cbb60e01b81523392810192909252602482018390526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561060b57600080fd5b505af115801561061f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa91906117a0565b6000818152600160205260409020426003820155600201805461ff001981166101001790915560ff166106b85760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e4654206e6f74206f6e207374616b65642100000000006044820152606401610528565b600354604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde906106ec90309033908690600401611805565b600060405180830381600087803b15801561070657600080fd5b505af115801561071a573d6000803e3d6000fd5b5050505061059181611297565b60005b81518110156104fa5761075582828151811061074857610748611972565b60200260200101516107a7565b8061075f8161192b565b91505061072a565b60005b81518110156104fa5761079582828151811061078857610788611972565b6020026020010151610643565b8061079f8161192b565b91505061076a565b60008181526001602052604090206002015460ff16156108095760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e673a204e465420616c7265616479206f6e207374616b656421006044820152606401610528565b6003546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e9060240160206040518083038186803b15801561084d57600080fd5b505afa158015610861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610885919061161f565b6001600160a01b0316146108db5760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7420746865204e4654206f776e65722100000000006044820152606401610528565b60035460405163020604bf60e21b8152600481018390526001600160a01b039091169063081812fc9060240160206040518083038186803b15801561091f57600080fd5b505afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610957919061161f565b6001600160a01b0316306001600160a01b031614806109f2575060035460405163e985e9c560e01b81523360048201523060248201526001600160a01b039091169063e985e9c59060440160206040518083038186803b1580156109ba57600080fd5b505afa1580156109ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f291906117a0565b610a7e5760405162461bcd60e51b815260206004820152605160248201527f5374616b696e673a204e4654206e6f7420617070726f76656420666f7220746860448201527f65207374616b696e672061646472657373204f52205374616b696e67206e6f7460648201527020736574206173206f70657261746f722160781b608482015260a401610528565b600354604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde90610ab290339030908690600401611805565b600060405180830381600087803b158015610acc57600080fd5b505af1158015610ae0573d6000803e3d6000fd5b5050505061059181611455565b6000546001600160a01b03163314610b175760405162461bcd60e51b815260040161052890611886565b610b21600061155a565b565b60025460609060009067ffffffffffffffff811115610b4457610b44611988565b604051908082528060200260200182016040528015610b6d578160200160208202803683370190505b5090506000805b600254811015610c795760006001600060028481548110610b9757610b97611972565b600091825260208083209091015483528281019390935260409182019020815160a08101835281546001600160a01b03908116808352600184015495830195909552600283015460ff808216151595840195909552610100900490931615156060820152600390910154608082015292508716148015610c18575080604001515b15610c665760028281548110610c3057610c30611972565b9060005260206000200154848481518110610c4d57610c4d611972565b602090810291909101015282610c628161192b565b9350505b5080610c718161192b565b915050610b74565b5060008167ffffffffffffffff811115610c9557610c95611988565b604051908082528060200260200182016040528015610cbe578160200160208202803683370190505b50905060005b82811015610d1557838181518110610cde57610cde611972565b6020026020010151828281518110610cf857610cf8611972565b602090810291909101015280610d0d8161192b565b915050610cc4565b50949350505050565b600080610d2a83610b23565b90506000805b8251811015610e4c5760016000848381518110610d4f57610d4f611972565b6020026020010151815260200190815260200160002060020160019054906101000a900460ff1615610df457610de360016000858481518110610d9457610d94611972565b602002602001015181526020019081526020016000206001015460016000868581518110610dc457610dc4611972565b60200260200101518152602001908152602001600020600301546115aa565b610ded90836118bb565b9150610e3a565b610e2d60016000858481518110610e0d57610e0d611972565b6020026020010151815260200190815260200160002060010154426115aa565b610e3790836118bb565b91505b80610e448161192b565b915050610d30565b509392505050565b60005b81518110156104fa57610e82828281518110610e7557610e75611972565b6020026020010151611126565b80610e8c8161192b565b915050610e57565b600081815260016020526040902080546001600160a01b0316610ef95760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a2042656172206e6f7420696e207374616b696e67210000006044820152606401610528565b80546001600160a01b03163314610f525760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a204e6f7420746865206f776e6572206f66204e46542100006044820152606401610528565b6002810154600090610100900460ff1615610fd7578160010154826003015411610fbe5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a20416c726561647920436c61696d656420526577617264216044820152606401610528565b610fd0826001015483600301546115aa565b905061103c565b600282015460ff1661102b5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a204e6f7420696e207374616b696e672100000000000000006044820152606401610528565b6110398260010154426115aa565b90505b4260018301556004805460405163a9059cbb60e01b81523392810192909252602482018390526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561108f57600080fd5b505af11580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906117a0565b50604080518481523360208201527f5dd59f4285b36241394b73f8f7ae03d0290b030a86803cf2562ecf33eeb617bd910160405180910390a1505050565b6002818154811061111557600080fd5b600091825260209091200154905081565b60008181526001602052604090206002015460ff166111875760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e4654206e6f74206f6e207374616b65642100000000006044820152606401610528565b600354604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde906111bb90309033908690600401611805565b600060405180830381600087803b1580156111d557600080fd5b505af11580156111e9573d6000803e3d6000fd5b505050506111f681610e94565b61059181611297565b6000546001600160a01b031633146112295760405162461bcd60e51b815260040161052890611886565b6001600160a01b03811661128e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610528565b6105918161155a565b6000818152600160205260409020600281015460ff166112f95760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a204e4654206e6f74207374616b65642100000000000000006044820152606401610528565b80546001600160a01b031633146113525760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a204e6f7420746865206f776e6572206f66204e46542100006044820152606401610528565b60028101805460ff19169055604080518381524260208201527f69f6d6e6926b6914c628cca5ab19879a4099facaba2b44626e07d8e38ebd189b910160405180910390a160005b6002548110156114505782600282815481106113b7576113b7611972565b9060005260206000200154141561143e57600280546113d890600190611914565b815481106113e8576113e8611972565b90600052602060002001546002828154811061140657611406611972565b60009182526020909120015560028054806114235761142361195c565b60019003818190600052602060002001600090559055505050565b806114488161192b565b915050611399565b505050565b6000818152600160205260409020600281015460ff16156114b85760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a204e465420616c726561647920696e207374616b696e67216044820152606401610528565b6002818101805483546001600160a01b03191633908117855542600180870182905561ffff199093168317909355835491820184556000939093527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0184905560408051928352602083018590528201527f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee909060600160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006115d76006546115d16005546115cb87876115de90919063ffffffff16565b906115ea565b906115f6565b9392505050565b60006115d78284611914565b60006115d782846118f5565b60006115d782846118d3565b60006020828403121561161457600080fd5b81356115d78161199e565b60006020828403121561163157600080fd5b81516115d78161199e565b60008060008060006080868803121561165457600080fd5b853561165f8161199e565b9450602086013561166f8161199e565b935060408601359250606086013567ffffffffffffffff8082111561169357600080fd5b818801915088601f8301126116a757600080fd5b8135818111156116b657600080fd5b8960208285010111156116c857600080fd5b9699959850939650602001949392505050565b600060208083850312156116ee57600080fd5b823567ffffffffffffffff8082111561170657600080fd5b818501915085601f83011261171a57600080fd5b81358181111561172c5761172c611988565b8060051b604051601f19603f8301168101818110858211171561175157611751611988565b604052828152858101935084860182860187018a101561177057600080fd5b600095505b83861015611793578035855260019590950194938601938601611775565b5098975050505050505050565b6000602082840312156117b257600080fd5b815180151581146115d757600080fd5b6000602082840312156117d457600080fd5b81356001600160e01b0319811681146115d757600080fd5b6000602082840312156117fe57600080fd5b5035919050565b6001600160a01b0393841681529190921660208201526040810191909152608060608201819052600190820152600160fd1b60a082015260c00190565b6020808252825182820181905260009190848201906040850190845b8181101561187a5783518352928401929184019160010161185e565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156118ce576118ce611946565b500190565b6000826118f057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561190f5761190f611946565b500290565b60008282101561192657611926611946565b500390565b600060001982141561193f5761193f611946565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461059157600080fdfea2646970667358221220475fbe6305e87e1a181c0b50e1cd9d0dfe79169d2fb9b9f3e6b2cd199f8f8de064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH20 0xBF6DDCFEE517CCB2E107AB0CF00B224A964AF63 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 SWAP2 AND PUSH20 0x136BD5C88F586988BEA55E29D9649E98DA512ADC OR SWAP1 SSTORE PUSH8 0x8AC7230489E80000 PUSH1 0x5 SSTORE PUSH3 0x15180 PUSH1 0x6 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x75 CALLER PUSH2 0x7A JUMP JUMPDEST PUSH2 0xCA JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x19E9 DUP1 PUSH2 0xD9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x135 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xAE169A50 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xAE169A50 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xB4231563 EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0xBACCCABE EQ PUSH2 0x3C6 JUMPI DUP1 PUSH4 0xBC1A73D6 EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0xC1DFA0BB EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x74E74760 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x80C48C0B EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x862BC2C5 EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3CCFD60B GT PUSH2 0xFD JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x246 JUMPI DUP1 PUSH4 0x5EEEC224 EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0x6954F3E5 EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0x6E75F5C7 EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0x6EB604E0 EQ PUSH2 0x2C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0xC313EF7 EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x21205FED EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x36B2C4B2 EQ PUSH2 0x206 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16B PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x1BA CALLDATASIZE PUSH1 0x4 PUSH2 0x163C JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0x4BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x226 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x177 JUMP JUMPDEST PUSH2 0x204 PUSH2 0x4FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x252 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x261 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x594 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x2A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0x727 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x2C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x7A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0xAED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x316 CALLDATASIZE PUSH1 0x4 PUSH2 0x1602 JUMP JUMPDEST PUSH2 0xB23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x177 SWAP2 SWAP1 PUSH2 0x1842 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x1602 JUMP JUMPDEST PUSH2 0xD1E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0xE54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x226 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x3A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0xE94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x1105 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x226 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x442 PUSH2 0x401 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x3 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP3 AND SWAP3 PUSH2 0x100 SWAP1 SWAP3 DIV AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x495 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1602 JUMP JUMPDEST PUSH2 0x11FF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0x4E8 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x4DB JUMPI PUSH2 0x4DB PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xE94 JUMP JUMPDEST DUP1 PUSH2 0x4F2 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4BD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x531 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 SELFBALANCE SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x57E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x583 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x591 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x60B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x61F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4FA SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 TIMESTAMP PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT DUP2 AND PUSH2 0x100 OR SWAP1 SWAP2 SSTORE PUSH1 0xFF AND PUSH2 0x6B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F74206F6E207374616B6564210000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5C46A7EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB88D4FDE SWAP1 PUSH2 0x6EC SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1805 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x71A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x591 DUP2 PUSH2 0x1297 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0x755 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x748 JUMPI PUSH2 0x748 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH2 0x75F DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x72A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0x795 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x788 JUMPI PUSH2 0x788 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x643 JUMP JUMPDEST DUP1 PUSH2 0x79F DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E465420616C7265616479206F6E207374616B65642100 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x861 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x885 SWAP2 SWAP1 PUSH2 0x161F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420746865204E4654206F776E6572210000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x20604BF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x81812FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x91F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x933 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x957 SWAP2 SWAP1 PUSH2 0x161F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x9F2 JUMPI POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE985E9C5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE985E9C5 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F2 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0xA7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x51 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F7420617070726F76656420666F72207468 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65207374616B696E672061646472657373204F52205374616B696E67206E6F74 PUSH1 0x64 DUP3 ADD MSTORE PUSH17 0x20736574206173206F70657261746F7221 PUSH1 0x78 SHL PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5C46A7EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB88D4FDE SWAP1 PUSH2 0xAB2 SWAP1 CALLER SWAP1 ADDRESS SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1805 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x591 DUP2 PUSH2 0x1455 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH2 0xB21 PUSH1 0x0 PUSH2 0x155A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB44 JUMPI PUSH2 0xB44 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xB6D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xC79 JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xB97 JUMPI PUSH2 0xB97 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP4 MSTORE DUP3 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP1 DUP4 MSTORE PUSH1 0x1 DUP5 ADD SLOAD SWAP6 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH2 0x100 SWAP1 DIV SWAP1 SWAP4 AND ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x3 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE SWAP3 POP DUP8 AND EQ DUP1 ISZERO PUSH2 0xC18 JUMPI POP DUP1 PUSH1 0x40 ADD MLOAD JUMPDEST ISZERO PUSH2 0xC66 JUMPI PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xC30 JUMPI PUSH2 0xC30 PUSH2 0x1972 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xC4D JUMPI PUSH2 0xC4D PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP3 PUSH2 0xC62 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP4 POP POP JUMPDEST POP DUP1 PUSH2 0xC71 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB74 JUMP JUMPDEST POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC95 JUMPI PUSH2 0xC95 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCBE JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xD15 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xCDE JUMPI PUSH2 0xCDE PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCF8 JUMPI PUSH2 0xCF8 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0xD0D DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xCC4 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD2A DUP4 PUSH2 0xB23 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0xE4C JUMPI PUSH1 0x1 PUSH1 0x0 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xD4F JUMPI PUSH2 0xD4F PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xDF4 JUMPI PUSH2 0xDE3 PUSH1 0x1 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD94 JUMPI PUSH2 0xD94 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDC4 JUMPI PUSH2 0xDC4 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH2 0x15AA JUMP JUMPDEST PUSH2 0xDED SWAP1 DUP4 PUSH2 0x18BB JUMP JUMPDEST SWAP2 POP PUSH2 0xE3A JUMP JUMPDEST PUSH2 0xE2D PUSH1 0x1 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xE0D JUMPI PUSH2 0xE0D PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH2 0x15AA JUMP JUMPDEST PUSH2 0xE37 SWAP1 DUP4 PUSH2 0x18BB JUMP JUMPDEST SWAP2 POP JUMPDEST DUP1 PUSH2 0xE44 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD30 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0xE82 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE75 JUMPI PUSH2 0xE75 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH2 0xE8C DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xEF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A2042656172206E6F7420696E207374616B696E6721000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420746865206F776E6572206F66204E4654210000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFD7 JUMPI DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x3 ADD SLOAD GT PUSH2 0xFBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A20416C726561647920436C61696D65642052657761726421 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH2 0xFD0 DUP3 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x3 ADD SLOAD PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP PUSH2 0x103C JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH2 0x102B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420696E207374616B696E67210000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH2 0x1039 DUP3 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP JUMPDEST TIMESTAMP PUSH1 0x1 DUP4 ADD SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x108F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C7 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE CALLER PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5DD59F4285B36241394B73F8F7AE03D0290B030A86803CF2562ECF33EEB617BD SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1115 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x1187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F74206F6E207374616B6564210000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5C46A7EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB88D4FDE SWAP1 PUSH2 0x11BB SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1805 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x11F6 DUP2 PUSH2 0xE94 JUMP JUMPDEST PUSH2 0x591 DUP2 PUSH2 0x1297 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1229 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x128E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x528 JUMP JUMPDEST PUSH2 0x591 DUP2 PUSH2 0x155A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x12F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F74207374616B6564210000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1352 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420746865206F776E6572206F66204E4654210000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x69F6D6E6926B6914C628CCA5AB19879A4099FACABA2B44626E07D8E38EBD189B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0x1450 JUMPI DUP3 PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x13B7 JUMPI PUSH2 0x13B7 PUSH2 0x1972 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD EQ ISZERO PUSH2 0x143E JUMPI PUSH1 0x2 DUP1 SLOAD PUSH2 0x13D8 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1914 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x13E8 JUMPI PUSH2 0x13E8 PUSH2 0x1972 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1406 JUMPI PUSH2 0x1406 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH1 0x2 DUP1 SLOAD DUP1 PUSH2 0x1423 JUMPI PUSH2 0x1423 PUSH2 0x195C JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x1448 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1399 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x14B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E465420616C726561647920696E207374616B696E6721 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER SWAP1 DUP2 OR DUP6 SSTORE TIMESTAMP PUSH1 0x1 DUP1 DUP8 ADD DUP3 SWAP1 SSTORE PUSH2 0xFFFF NOT SWAP1 SWAP4 AND DUP4 OR SWAP1 SWAP4 SSTORE DUP4 SLOAD SWAP2 DUP3 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE ADD DUP5 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 ADD MSTORE PUSH32 0x1449C6DD7851ABC30ABF37F57715F492010519147CC2652FBC38202C18A6EE90 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 PUSH1 0x6 SLOAD PUSH2 0x15D1 PUSH1 0x5 SLOAD PUSH2 0x15CB DUP8 DUP8 PUSH2 0x15DE SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH2 0x15EA JUMP JUMPDEST SWAP1 PUSH2 0x15F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 DUP3 DUP5 PUSH2 0x1914 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 DUP3 DUP5 PUSH2 0x18F5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 DUP3 DUP5 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x15D7 DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15D7 DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x165F DUP2 PUSH2 0x199E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x166F DUP2 PUSH2 0x199E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x16C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x171A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x172C JUMPI PUSH2 0x172C PUSH2 0x1988 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x1751 JUMPI PUSH2 0x1751 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP11 LT ISZERO PUSH2 0x1770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x1793 JUMPI DUP1 CALLDATALOAD DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x1775 JUMP JUMPDEST POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x15D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x15D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x1 SWAP1 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xFD SHL PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x187A JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x185E JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x18CE JUMPI PUSH2 0x18CE PUSH2 0x1946 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x18F0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x190F JUMPI PUSH2 0x190F PUSH2 0x1946 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1926 JUMPI PUSH2 0x1926 PUSH2 0x1946 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x193F JUMPI PUSH2 0x193F PUSH2 0x1946 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x591 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0x5F 0xBE PUSH4 0x5E87E1A XOR SHR SIGNEXTEND POP 0xE1 0xCD SWAP14 0xD INVALID PUSH26 0x169D2FB9B9F3E6B2CD199F8F8DE064736F6C6343000807003300 ",
"sourceMap": "19944:6837:0:-:0;;;20591:67;;;-1:-1:-1;;;;;;20591:67:0;;;20616:42;20591:67;;;;20682:65;;;;;;20705:42;20682:65;;;20794:11;20779:26;;20854:6;20831:29;;19944:6837;;;;;;;;;-1:-1:-1;10484:32:0;9494:10;10484:18;:32::i;:::-;19944:6837;;11875:191;11949:16;11968:6;;-1:-1:-1;;;;;11985:17:0;;;-1:-1:-1;;;;;;11985:17:0;;;;;;12018:40;;11968:6;;;;;;;12018:40;;11949:16;12018:40;11938:128;11875:191;:::o;19944:6837::-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_msgSender_210": {
"entryPoint": null,
"id": 210,
"parameterSlots": 0,
"returnSlots": 1
},
"@_stakeNFT_1028": {
"entryPoint": 5205,
"id": 1028,
"parameterSlots": 1,
"returnSlots": 0
},
"@_transferOwnership_321": {
"entryPoint": 5466,
"id": 321,
"parameterSlots": 1,
"returnSlots": 0
},
"@_unstakeNFT_1105": {
"entryPoint": 4759,
"id": 1105,
"parameterSlots": 1,
"returnSlots": 0
},
"@batchStakeNFT_760": {
"entryPoint": 1831,
"id": 760,
"parameterSlots": 1,
"returnSlots": 0
},
"@batchUnstakeNFT_859": {
"entryPoint": 3668,
"id": 859,
"parameterSlots": 1,
"returnSlots": 0
},
"@batchUnstakeWithoutRewardNFT_921": {
"entryPoint": 1895,
"id": 921,
"parameterSlots": 1,
"returnSlots": 0
},
"@bearNFT_700": {
"entryPoint": null,
"id": 700,
"parameterSlots": 0,
"returnSlots": 0
},
"@bears_697": {
"entryPoint": 4357,
"id": 697,
"parameterSlots": 0,
"returnSlots": 0
},
"@calculateReward_734": {
"entryPoint": 5546,
"id": 734,
"parameterSlots": 2,
"returnSlots": 1
},
"@claimBatchReward_1228": {
"entryPoint": 1210,
"id": 1228,
"parameterSlots": 1,
"returnSlots": 0
},
"@claimReward_1202": {
"entryPoint": 3732,
"id": 1202,
"parameterSlots": 1,
"returnSlots": 0
},
"@div_557": {
"entryPoint": 5622,
"id": 557,
"parameterSlots": 2,
"returnSlots": 1
},
"@getClaimableToken_1401": {
"entryPoint": 3358,
"id": 1401,
"parameterSlots": 1,
"returnSlots": 1
},
"@getStakedBear_1328": {
"entryPoint": 2851,
"id": 1328,
"parameterSlots": 1,
"returnSlots": 1
},
"@getTotalStakedBears_1410": {
"entryPoint": null,
"id": 1410,
"parameterSlots": 0,
"returnSlots": 1
},
"@honey_703": {
"entryPoint": null,
"id": 703,
"parameterSlots": 0,
"returnSlots": 0
},
"@mul_542": {
"entryPoint": 5610,
"id": 542,
"parameterSlots": 2,
"returnSlots": 1
},
"@onERC721Received_1471": {
"entryPoint": null,
"id": 1471,
"parameterSlots": 5,
"returnSlots": 1
},
"@owner_250": {
"entryPoint": null,
"id": 250,
"parameterSlots": 0,
"returnSlots": 1
},
"@renounceOwnership_278": {
"entryPoint": 2797,
"id": 278,
"parameterSlots": 0,
"returnSlots": 0
},
"@stakeNFT_833": {
"entryPoint": 1959,
"id": 833,
"parameterSlots": 1,
"returnSlots": 0
},
"@stakedBear_694": {
"entryPoint": null,
"id": 694,
"parameterSlots": 0,
"returnSlots": 0
},
"@sub_527": {
"entryPoint": 5598,
"id": 527,
"parameterSlots": 2,
"returnSlots": 1
},
"@supportsInterface_1483": {
"entryPoint": null,
"id": 1483,
"parameterSlots": 1,
"returnSlots": 1
},
"@transferOwnership_301": {
"entryPoint": 4607,
"id": 301,
"parameterSlots": 1,
"returnSlots": 0
},
"@unstakeNFT_895": {
"entryPoint": 4390,
"id": 895,
"parameterSlots": 1,
"returnSlots": 0
},
"@unstakeWithoutRewardNFT_968": {
"entryPoint": 1603,
"id": 968,
"parameterSlots": 1,
"returnSlots": 0
},
"@withdrawToken_1454": {
"entryPoint": 1428,
"id": 1454,
"parameterSlots": 1,
"returnSlots": 0
},
"@withdraw_1437": {
"entryPoint": 1278,
"id": 1437,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_tuple_t_address": {
"entryPoint": 5634,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_fromMemory": {
"entryPoint": 5663,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr": {
"entryPoint": 5692,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 5851,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 6048,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4": {
"entryPoint": 6082,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 6124,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256_t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 6149,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_bool_t_bool_t_uint256__to_t_address_t_uint256_t_bool_t_bool_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 6210,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_015264f2b17cd41347fe12531c2abfce786936b7581bae81f7af2b2fef44e6a5__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_28b9ffdb8c659d835816547f7ca68c7210a5525b031a2450bc5cff91d80d4d74__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_5d80b3921509aa026a1e14cb7112606f98aced9d1fc8d4669657d7f9a9a061bb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6e4181a5073ffdca863794c9ee4742e20744639fa9aa0ef6d149877b49fe6174__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6278,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_a3ff21c914d2f2ece0185a71d5793652f5a184598ea13514df1db51ed047b835__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ce6297ace8d2f4150c469b20cd7b8e5b952750ad177b38f44d0b884403086573__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_d065b0d811f63168552e9c253c2e45379fe2d96e54ffa13e4cbe8a5b69b6124e__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ee2623b20ae76d0ea320d9c2d1487c6c4f7d6069f03da9be02d0d06c11e9cac9__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_f5892f4d1aed4bedd87e4b3cf27b57e0773e35797c0f946f119afdb326919e1a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_f7f49993867d84b05995548b64fbe47a46af19990274ca404954f0f7f46ff344__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 6331,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 6355,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 6389,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 6420,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"increment_t_uint256": {
"entryPoint": 6443,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 6470,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x31": {
"entryPoint": 6492,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 6514,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 6536,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_address": {
"entryPoint": 6558,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:13507:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "84:177:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "130:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "139:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "142:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "132:6:1"
},
"nodeType": "YulFunctionCall",
"src": "132:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "132:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "105:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "114:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "101:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "126:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "97:3:1"
},
"nodeType": "YulFunctionCall",
"src": "97:32:1"
},
"nodeType": "YulIf",
"src": "94:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "155:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "181:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "168:12:1"
},
"nodeType": "YulFunctionCall",
"src": "168:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "159:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "225:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "200:24:1"
},
"nodeType": "YulFunctionCall",
"src": "200:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "200:31:1"
},
{
"nodeType": "YulAssignment",
"src": "240:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "250:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "240:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "50:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "61:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "73:6:1",
"type": ""
}
],
"src": "14:247:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "347:170:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "393:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "402:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "405:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "395:6:1"
},
"nodeType": "YulFunctionCall",
"src": "395:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "395:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "368:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "377:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "364:3:1"
},
"nodeType": "YulFunctionCall",
"src": "364:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "389:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "360:3:1"
},
"nodeType": "YulFunctionCall",
"src": "360:32:1"
},
"nodeType": "YulIf",
"src": "357:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "418:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "437:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "431:5:1"
},
"nodeType": "YulFunctionCall",
"src": "431:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "422:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "481:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "456:24:1"
},
"nodeType": "YulFunctionCall",
"src": "456:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "456:31:1"
},
{
"nodeType": "YulAssignment",
"src": "496:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "506:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "496:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "313:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "324:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "336:6:1",
"type": ""
}
],
"src": "266:251:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "662:796:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "709:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "718:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "721:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "711:6:1"
},
"nodeType": "YulFunctionCall",
"src": "711:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "711:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "683:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "692:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "679:3:1"
},
"nodeType": "YulFunctionCall",
"src": "679:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "704:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "675:3:1"
},
"nodeType": "YulFunctionCall",
"src": "675:33:1"
},
"nodeType": "YulIf",
"src": "672:53:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "734:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "760:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "747:12:1"
},
"nodeType": "YulFunctionCall",
"src": "747:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "738:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "804:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "779:24:1"
},
"nodeType": "YulFunctionCall",
"src": "779:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "779:31:1"
},
{
"nodeType": "YulAssignment",
"src": "819:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "829:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "819:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "843:47:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "875:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "886:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "871:3:1"
},
"nodeType": "YulFunctionCall",
"src": "871:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "858:12:1"
},
"nodeType": "YulFunctionCall",
"src": "858:32:1"
},
"variables": [
{
"name": "value_1",
"nodeType": "YulTypedName",
"src": "847:7:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "924:7:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "899:24:1"
},
"nodeType": "YulFunctionCall",
"src": "899:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "899:33:1"
},
{
"nodeType": "YulAssignment",
"src": "941:17:1",
"value": {
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "951:7:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "941:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "967:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "994:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1005:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "990:3:1"
},
"nodeType": "YulFunctionCall",
"src": "990:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "977:12:1"
},
"nodeType": "YulFunctionCall",
"src": "977:32:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "967:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1018:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1049:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1060:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1045:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1045:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1032:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1032:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1022:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1073:28:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1083:18:1",
"type": "",
"value": "0xffffffffffffffff"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "1077:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1128:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1137:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1140:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1130:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1130:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1130:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1116:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "1124:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1113:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1113:14:1"
},
"nodeType": "YulIf",
"src": "1110:34:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1153:32:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1167:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1178:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1163:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1163:22:1"
},
"variables": [
{
"name": "_2",
"nodeType": "YulTypedName",
"src": "1157:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1233:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1242:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1245:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1235:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1235:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1235:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "1212:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1216:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1208:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1208:13:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1223:7:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1204:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1204:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1197:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1197:35:1"
},
"nodeType": "YulIf",
"src": "1194:55:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1258:30:1",
"value": {
"arguments": [
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "1285:2:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1272:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1272:16:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1262:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1315:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1324:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1327:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1317:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1317:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1317:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1303:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "1311:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1300:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1300:14:1"
},
"nodeType": "YulIf",
"src": "1297:34:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1381:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1390:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1393:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1383:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1383:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1383:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "1354:2:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1358:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1350:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1350:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1367:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1346:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1346:24:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1372:7:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1343:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1343:37:1"
},
"nodeType": "YulIf",
"src": "1340:57:1"
},
{
"nodeType": "YulAssignment",
"src": "1406:21:1",
"value": {
"arguments": [
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "1420:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1424:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1416:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1416:11:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "1406:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1436:16:1",
"value": {
"name": "length",
"nodeType": "YulIdentifier",
"src": "1446:6:1"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "1436:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "596:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "607:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "619:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "627:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "635:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "643:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "651:6:1",
"type": ""
}
],
"src": "522:936:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1558:1031:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1568:12:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1578:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "1572:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1625:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1634:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1637:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1627:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1627:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1627:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1600:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1609:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1596:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1596:23:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "1621:2:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1592:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1592:32:1"
},
"nodeType": "YulIf",
"src": "1589:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1650:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1677:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1664:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1664:23:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1654:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1696:28:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1706:18:1",
"type": "",
"value": "0xffffffffffffffff"
},
"variables": [
{
"name": "_2",
"nodeType": "YulTypedName",
"src": "1700:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1751:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1760:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1763:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1753:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1753:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1753:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1739:6:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "1747:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1736:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1736:14:1"
},
"nodeType": "YulIf",
"src": "1733:34:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1776:32:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1790:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1801:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1786:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1786:22:1"
},
"variables": [
{
"name": "_3",
"nodeType": "YulTypedName",
"src": "1780:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1856:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1865:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1868:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1858:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1858:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1858:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "1835:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1839:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1831:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1831:13:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1846:7:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1827:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1827:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1820:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1820:35:1"
},
"nodeType": "YulIf",
"src": "1817:55:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1881:26:1",
"value": {
"arguments": [
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "1904:2:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1891:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1891:16:1"
},
"variables": [
{
"name": "_4",
"nodeType": "YulTypedName",
"src": "1885:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1930:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1932:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1932:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1932:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "_4",
"nodeType": "YulIdentifier",
"src": "1922:2:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "1926:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1919:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1919:10:1"
},
"nodeType": "YulIf",
"src": "1916:36:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1961:20:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1975:1:1",
"type": "",
"value": "5"
},
{
"name": "_4",
"nodeType": "YulIdentifier",
"src": "1978:2:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1971:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1971:10:1"
},
"variables": [
{
"name": "_5",
"nodeType": "YulTypedName",
"src": "1965:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1990:23:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2010:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2004:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2004:9:1"
},
"variables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1994:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2022:56:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2044:6:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "_5",
"nodeType": "YulIdentifier",
"src": "2060:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2064:2:1",
"type": "",
"value": "63"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2056:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2056:11:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2073:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "2069:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2069:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2052:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2052:25:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2040:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2040:38:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "2026:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2137:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2139:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2139:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2139:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2096:10:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "2108:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2093:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2093:18:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2116:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2128:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2113:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2113:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "2090:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2090:46:1"
},
"nodeType": "YulIf",
"src": "2087:72:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2175:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2179:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2168:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2168:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "2168:22:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2199:17:1",
"value": {
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2210:6:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2203:3:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2232:6:1"
},
{
"name": "_4",
"nodeType": "YulIdentifier",
"src": "2240:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2225:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2225:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2225:18:1"
},
{
"nodeType": "YulAssignment",
"src": "2252:22:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2263:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "2271:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2259:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2259:15:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2252:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2283:22:1",
"value": {
"arguments": [
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "2298:2:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "2302:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2294:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2294:11:1"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2287:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2351:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2360:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2363:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2353:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2353:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2353:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "2328:2:1"
},
{
"name": "_5",
"nodeType": "YulIdentifier",
"src": "2332:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2324:11:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "2337:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2320:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2320:20:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2342:7:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2317:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2317:33:1"
},
"nodeType": "YulIf",
"src": "2314:53:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2376:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2385:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2380:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2440:118:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2461:3:1"
},
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2479:3:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2466:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2466:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2454:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2454:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "2454:30:1"
},
{
"nodeType": "YulAssignment",
"src": "2497:19:1",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2508:3:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "2513:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2504:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2504:12:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2497:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2529:19:1",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2540:3:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "2545:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2536:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2536:12:1"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2529:3:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2406:1:1"
},
{
"name": "_4",
"nodeType": "YulIdentifier",
"src": "2409:2:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2403:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2403:9:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2413:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2415:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2424:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2427:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2420:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2420:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2415:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2399:3:1",
"statements": []
},
"src": "2395:163:1"
},
{
"nodeType": "YulAssignment",
"src": "2567:16:1",
"value": {
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2577:6:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2567:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1524:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1535:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1547:6:1",
"type": ""
}
],
"src": "1463:1126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2672:199:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2718:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2727:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2730:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2720:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2720:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2720:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2693:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2702:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2689:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2689:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2714:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2685:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2685:32:1"
},
"nodeType": "YulIf",
"src": "2682:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2743:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2762:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2756:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2756:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2747:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2825:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2834:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2837:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2827:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2827:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2827:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2794:5:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2815:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2808:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2808:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2801:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2801:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2791:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2791:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2784:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2784:40:1"
},
"nodeType": "YulIf",
"src": "2781:60:1"
},
{
"nodeType": "YulAssignment",
"src": "2850:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2860:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2850:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2638:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2649:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2661:6:1",
"type": ""
}
],
"src": "2594:277:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2945:217:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2991:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3000:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3003:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2993:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2993:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2993:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2966:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2975:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2962:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2962:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2987:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2958:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2958:32:1"
},
"nodeType": "YulIf",
"src": "2955:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3016:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3042:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3029:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3029:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3020:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3116:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3125:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3128:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3118:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3118:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3118:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3074:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3085:5:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3096:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3101:10:1",
"type": "",
"value": "0xffffffff"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3092:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3092:20:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3081:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3081:32:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3071:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3071:43:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3064:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3064:51:1"
},
"nodeType": "YulIf",
"src": "3061:71:1"
},
{
"nodeType": "YulAssignment",
"src": "3141:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "3151:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3141:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2911:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2922:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2934:6:1",
"type": ""
}
],
"src": "2876:286:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3237:110:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3283:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3292:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3295:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3285:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3285:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3285:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3258:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3267:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3254:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3279:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3250:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3250:32:1"
},
"nodeType": "YulIf",
"src": "3247:52:1"
},
{
"nodeType": "YulAssignment",
"src": "3308:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3331:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3318:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3318:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3308:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3203:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3214:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3226:6:1",
"type": ""
}
],
"src": "3167:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3543:14:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3545:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3552:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3545:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3527:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3535:3:1",
"type": ""
}
],
"src": "3352:205:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3663:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3673:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3685:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3696:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3681:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3681:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3673:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3715:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3730:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3746:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3751:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3742:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3742:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3755:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3738:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3738:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3726:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3726:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3708:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3708:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "3708:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3632:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3643:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3654:4:1",
"type": ""
}
],
"src": "3562:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3899:175:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3909:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3921:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3932:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3917:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3917:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3909:4:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3944:29:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3962:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3967:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3958:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3958:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3971:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3954:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3954:19:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "3948:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3989:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4004:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4012:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4000:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4000:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3982:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3982:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "3982:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4036:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4047:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4032:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4032:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4056:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4064:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4052:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4052:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4025:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4025:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "4025:43:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3860:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3871:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3879:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3890:4:1",
"type": ""
}
],
"src": "3770:304:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4336:339:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4346:29:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4364:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4369:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4360:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4360:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4373:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4356:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4356:19:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "4350:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4391:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4406:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4414:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4402:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4402:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4384:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4384:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4384:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4438:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4449:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4434:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4434:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4458:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4466:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4454:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4454:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4427:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4427:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "4427:43:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4490:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4501:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4486:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4486:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4506:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4479:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4479:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4479:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4533:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4544:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4529:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4529:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4549:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4522:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4522:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "4522:31:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4573:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4584:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4569:19:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4590:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4562:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4562:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4562:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4612:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4623:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4608:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4608:19:1"
},
{
"hexValue": "20",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4629:3:1",
"type": "",
"value": " "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4601:32:1"
},
"nodeType": "YulExpressionStatement",
"src": "4601:32:1"
},
{
"nodeType": "YulAssignment",
"src": "4642:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4654:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4665:3:1",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4650:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4650:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4642:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256_t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4289:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "4300:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4308:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4316:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4327:4:1",
"type": ""
}
],
"src": "4079:596:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4809:145:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4819:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4831:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4842:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4827:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4827:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4819:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4861:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4876:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4892:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4897:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4888:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4888:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4901:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4884:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4884:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4872:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4872:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4854:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4854:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "4854:51:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4925:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4936:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4921:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4921:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4941:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4914:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4914:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4914:34:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4770:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4781:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4789:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4800:4:1",
"type": ""
}
],
"src": "4680:274:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5160:308:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5170:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5182:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5193:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5178:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5178:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5170:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5213:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5228:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5244:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5249:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5240:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5240:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5253:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5236:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5236:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5224:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5224:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5206:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5206:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "5206:51:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5277:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5288:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5273:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5273:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5293:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5266:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5266:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5266:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5320:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5331:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5316:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5316:18:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5350:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5343:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5343:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5336:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5336:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5309:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5309:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "5309:50:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5379:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5390:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5375:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5375:18:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "5409:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5402:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5402:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5395:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5395:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5368:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5368:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "5368:50:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5438:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5449:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5434:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5434:19:1"
},
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "5455:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5427:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5427:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "5427:35:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_bool_t_bool_t_uint256__to_t_address_t_uint256_t_bool_t_bool_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5097:9:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "5108:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "5116:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5124:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5132:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5140:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5151:4:1",
"type": ""
}
],
"src": "4959:509:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5630:188:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5640:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5652:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5663:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5648:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5648:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5640:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5682:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5697:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5713:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5718:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5709:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5709:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5722:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5705:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5705:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5693:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5693:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5675:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5675:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "5675:51:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5746:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5757:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5742:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5742:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5762:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5735:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5735:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5735:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5789:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5800:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5785:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5785:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5805:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5778:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5778:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5778:34:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5583:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5594:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5602:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5610:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5621:4:1",
"type": ""
}
],
"src": "5473:345:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5974:481:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5984:12:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5994:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "5988:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "6005:32:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6023:9:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6034:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6019:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6019:18:1"
},
"variables": [
{
"name": "tail_1",
"nodeType": "YulTypedName",
"src": "6009:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6053:9:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6064:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6046:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6046:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6046:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "6076:17:1",
"value": {
"name": "tail_1",
"nodeType": "YulIdentifier",
"src": "6087:6:1"
},
"variables": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6080:3:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "6102:27:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6122:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6116:5:1"
},
"nodeType": "YulFunctionCall",
"src": "6116:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6106:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "tail_1",
"nodeType": "YulIdentifier",
"src": "6145:6:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6153:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6138:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6138:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "6138:22:1"
},
{
"nodeType": "YulAssignment",
"src": "6169:25:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6180:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6191:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6176:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6176:18:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6169:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "6203:29:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6221:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6229:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6217:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6217:15:1"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "6207:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "6241:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6250:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "6245:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6309:120:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6330:3:1"
},
{
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "6341:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6335:5:1"
},
"nodeType": "YulFunctionCall",
"src": "6335:13:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6323:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6323:26:1"
},
"nodeType": "YulExpressionStatement",
"src": "6323:26:1"
},
{
"nodeType": "YulAssignment",
"src": "6362:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6373:3:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6378:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6369:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6369:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6362:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6394:25:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "6408:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6416:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6404:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6404:15:1"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "6394:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6271:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6274:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6268:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6268:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "6282:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6284:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6293:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6296:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6289:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6289:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6284:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "6264:3:1",
"statements": []
},
"src": "6260:169:1"
},
{
"nodeType": "YulAssignment",
"src": "6438:11:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6446:3:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6438:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5943:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5954:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5965:4:1",
"type": ""
}
],
"src": "5823:632:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6555:92:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6565:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6577:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6588:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6573:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6565:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6607:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6632:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6625:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6625:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6618:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6618:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6600:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6600:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "6600:41:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6524:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6535:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6546:4:1",
"type": ""
}
],
"src": "6460:187:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6751:103:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6761:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6773:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6784:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6769:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6769:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6761:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6803:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6818:6:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6830:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6835:10:1",
"type": "",
"value": "0xffffffff"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "6826:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6826:20:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6814:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6814:33:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6796:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6796:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "6796:52:1"
}
]
},
"name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6720:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6731:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6742:4:1",
"type": ""
}
],
"src": "6652:202:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7033:174:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7050:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7061:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7043:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7043:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7043:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7084:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7095:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7080:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7080:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7100:2:1",
"type": "",
"value": "24"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7073:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7073:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7073:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7123:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7134:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7119:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7119:18:1"
},
{
"hexValue": "5374616b696e673a204e6f7420696e207374616b696e6721",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7139:26:1",
"type": "",
"value": "Staking: Not in staking!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7112:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7112:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "7112:54:1"
},
{
"nodeType": "YulAssignment",
"src": "7175:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7187:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7198:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7183:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7183:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7175:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_015264f2b17cd41347fe12531c2abfce786936b7581bae81f7af2b2fef44e6a5__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7010:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7024:4:1",
"type": ""
}
],
"src": "6859:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7386:228:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7403:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7414:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7396:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7396:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7396:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7437:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7448:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7433:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7433:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7453:2:1",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7426:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7426:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7426:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7476:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7487:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7472:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7472:18:1"
},
{
"hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7492:34:1",
"type": "",
"value": "Ownable: new owner is the zero a"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7465:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7465:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7465:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7547:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7558:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7543:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7543:18:1"
},
{
"hexValue": "646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7563:8:1",
"type": "",
"value": "ddress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7536:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7536:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "7536:36:1"
},
{
"nodeType": "YulAssignment",
"src": "7581:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7593:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7604:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7589:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7589:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7581:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7363:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7377:4:1",
"type": ""
}
],
"src": "7212:402:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7793:311:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7810:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7821:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7803:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7803:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7803:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7844:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7855:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7840:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7840:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7860:2:1",
"type": "",
"value": "81"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7833:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7833:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7833:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7883:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7894:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7879:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7879:18:1"
},
{
"hexValue": "5374616b696e673a204e4654206e6f7420617070726f76656420666f72207468",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7899:34:1",
"type": "",
"value": "Staking: NFT not approved for th"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7872:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7872:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7872:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7954:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7965:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7950:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7950:18:1"
},
{
"hexValue": "65207374616b696e672061646472657373204f52205374616b696e67206e6f74",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7970:34:1",
"type": "",
"value": "e staking address OR Staking not"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7943:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7943:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7943:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8025:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8036:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8021:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8021:19:1"
},
{
"hexValue": "20736574206173206f70657261746f7221",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8042:19:1",
"type": "",
"value": " set as operator!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8014:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8014:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "8014:48:1"
},
{
"nodeType": "YulAssignment",
"src": "8071:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8083:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8094:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8079:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8079:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8071:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_28b9ffdb8c659d835816547f7ca68c7210a5525b031a2450bc5cff91d80d4d74__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7770:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7784:4:1",
"type": ""
}
],
"src": "7619:485:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8283:177:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8300:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8311:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8293:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8293:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8293:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8330:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8350:2:1",
"type": "",
"value": "27"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8323:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8323:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8323:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8373:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8384:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8369:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8369:18:1"
},
{
"hexValue": "5374616b696e673a204e4654206e6f74206f6e207374616b656421",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8389:29:1",
"type": "",
"value": "Staking: NFT not on staked!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8362:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8362:57:1"
},
"nodeType": "YulExpressionStatement",
"src": "8362:57:1"
},
{
"nodeType": "YulAssignment",
"src": "8428:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8440:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8451:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8436:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8436:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8428:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_5d80b3921509aa026a1e14cb7112606f98aced9d1fc8d4669657d7f9a9a061bb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8260:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8274:4:1",
"type": ""
}
],
"src": "8109:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8639:181:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8656:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8667:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8649:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8649:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8649:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8690:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8701:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8686:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8686:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8706:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8679:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8679:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8679:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8729:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8740:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8725:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8725:18:1"
},
{
"hexValue": "5374616b696e673a204e465420616c7265616479206f6e207374616b656421",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8745:33:1",
"type": "",
"value": "Staking: NFT already on staked!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8718:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8718:61:1"
},
"nodeType": "YulExpressionStatement",
"src": "8718:61:1"
},
{
"nodeType": "YulAssignment",
"src": "8788:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8800:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8811:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8796:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8788:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_6e4181a5073ffdca863794c9ee4742e20744639fa9aa0ef6d149877b49fe6174__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8616:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8630:4:1",
"type": ""
}
],
"src": "8465:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8999:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9016:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9027:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9009:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9009:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9050:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9061:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9046:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9046:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9066:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9039:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9039:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9039:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9089:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9100:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9085:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9085:18:1"
},
{
"hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9105:34:1",
"type": "",
"value": "Ownable: caller is not the owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9078:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9078:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "9078:62:1"
},
{
"nodeType": "YulAssignment",
"src": "9149:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9161:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9172:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9157:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9157:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9149:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8976:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8990:4:1",
"type": ""
}
],
"src": "8825:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9360:180:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9377:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9388:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9370:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9370:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9370:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9411:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9422:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9407:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9407:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9427:2:1",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9400:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9400:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9400:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9450:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9461:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9446:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9446:18:1"
},
{
"hexValue": "5374616b696e673a204e6f7420746865206f776e6572206f66204e465421",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9466:32:1",
"type": "",
"value": "Staking: Not the owner of NFT!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9439:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9439:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "9439:60:1"
},
{
"nodeType": "YulAssignment",
"src": "9508:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9520:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9531:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9516:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9516:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9508:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_a3ff21c914d2f2ece0185a71d5793652f5a184598ea13514df1db51ed047b835__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9337:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9351:4:1",
"type": ""
}
],
"src": "9186:354:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9719:174:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9736:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9747:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9729:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9729:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9729:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9770:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9781:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9766:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9766:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9786:2:1",
"type": "",
"value": "24"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9759:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9759:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9759:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9809:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9820:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9805:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9805:18:1"
},
{
"hexValue": "5374616b696e673a204e4654206e6f74207374616b656421",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9825:26:1",
"type": "",
"value": "Staking: NFT not staked!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9798:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9798:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "9798:54:1"
},
{
"nodeType": "YulAssignment",
"src": "9861:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9873:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9884:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9869:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9869:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9861:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ce6297ace8d2f4150c469b20cd7b8e5b952750ad177b38f44d0b884403086573__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9696:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9710:4:1",
"type": ""
}
],
"src": "9545:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10072:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10089:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10100:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10082:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10082:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "10082:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10123:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10134:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10119:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10119:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10139:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10112:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10112:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "10112:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10162:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10173:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10158:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10158:18:1"
},
{
"hexValue": "5374616b696e673a20416c726561647920436c61696d65642052657761726421",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10178:34:1",
"type": "",
"value": "Staking: Already Claimed Reward!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10151:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10151:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "10151:62:1"
},
{
"nodeType": "YulAssignment",
"src": "10222:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10234:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10245:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10230:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10230:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10222:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_d065b0d811f63168552e9c253c2e45379fe2d96e54ffa13e4cbe8a5b69b6124e__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10049:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10063:4:1",
"type": ""
}
],
"src": "9898:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10433:177:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10450:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10461:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10443:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10443:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "10443:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10484:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10495:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10480:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10480:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10500:2:1",
"type": "",
"value": "27"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10473:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "10473:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10523:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10534:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10519:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10519:18:1"
},
{
"hexValue": "5374616b696e673a204e6f7420746865204e4654206f776e657221",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10539:29:1",
"type": "",
"value": "Staking: Not the NFT owner!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10512:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10512:57:1"
},
"nodeType": "YulExpressionStatement",
"src": "10512:57:1"
},
{
"nodeType": "YulAssignment",
"src": "10578:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10590:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10601:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10586:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10586:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10578:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ee2623b20ae76d0ea320d9c2d1487c6c4f7d6069f03da9be02d0d06c11e9cac9__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10410:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10424:4:1",
"type": ""
}
],
"src": "10259:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10789:179:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10806:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10817:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10799:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10799:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "10799:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10840:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10851:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10836:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10836:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10856:2:1",
"type": "",
"value": "29"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10829:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10829:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "10829:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10879:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10890:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10875:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10875:18:1"
},
{
"hexValue": "5374616b696e673a2042656172206e6f7420696e207374616b696e6721",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10895:31:1",
"type": "",
"value": "Staking: Bear not in staking!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10868:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10868:59:1"
},
"nodeType": "YulExpressionStatement",
"src": "10868:59:1"
},
{
"nodeType": "YulAssignment",
"src": "10936:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10948:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10959:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10944:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10944:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10936:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f5892f4d1aed4bedd87e4b3cf27b57e0773e35797c0f946f119afdb326919e1a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10766:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10780:4:1",
"type": ""
}
],
"src": "10615:353:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11147:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11164:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11175:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11157:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11157:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "11157:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11198:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11209:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11194:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11214:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11187:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "11187:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11237:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11248:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11233:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11233:18:1"
},
{
"hexValue": "5374616b696e673a204e465420616c726561647920696e207374616b696e6721",
"kind": "string",
"nodeType": "YulLiteral",
"src": "11253:34:1",
"type": "",
"value": "Staking: NFT already in staking!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11226:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11226:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "11226:62:1"
},
{
"nodeType": "YulAssignment",
"src": "11297:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11309:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11320:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11305:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11305:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11297:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f7f49993867d84b05995548b64fbe47a46af19990274ca404954f0f7f46ff344__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11124:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11138:4:1",
"type": ""
}
],
"src": "10973:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11435:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11445:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11457:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11468:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11453:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11445:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11487:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11498:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11480:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11480:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "11480:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11404:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11415:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11426:4:1",
"type": ""
}
],
"src": "11334:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11645:145:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11655:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11667:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11678:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11663:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11663:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11655:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11697:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11708:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11690:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11690:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "11690:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11735:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11746:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11731:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11731:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11755:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11771:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11776:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "11767:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11767:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11780:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11763:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11763:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "11751:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11751:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11724:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11724:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "11724:60:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11606:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11617:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11625:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11636:4:1",
"type": ""
}
],
"src": "11516:274:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11924:119:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11934:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11946:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11957:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11942:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11942:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11934:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11976:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11987:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11969:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11969:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "11969:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12014:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12025:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12010:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12010:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "12030:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12003:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12003:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "12003:34:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11885:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11896:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11904:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11915:4:1",
"type": ""
}
],
"src": "11795:248:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12096:80:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12123:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12125:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12125:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12125:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12112:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12119:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "12115:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12115:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12109:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12109:13:1"
},
"nodeType": "YulIf",
"src": "12106:39:1"
},
{
"nodeType": "YulAssignment",
"src": "12154:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12165:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12168:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12161:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "12154:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "12079:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "12082:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "12088:3:1",
"type": ""
}
],
"src": "12048:128:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12227:171:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12258:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12279:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12286:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12291:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "12282:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12282:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12272:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12272:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "12272:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12323:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12326:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12316:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12316:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12316:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12351:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12354:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12344:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12344:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12344:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12247:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12240:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12240:9:1"
},
"nodeType": "YulIf",
"src": "12237:132:1"
},
{
"nodeType": "YulAssignment",
"src": "12378:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12387:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12390:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "12383:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12383:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "12378:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "12212:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "12215:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "12221:1:1",
"type": ""
}
],
"src": "12181:217:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12455:116:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12514:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12516:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12516:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12516:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12486:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12479:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12479:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12472:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12472:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12494:1:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12505:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "12501:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12501:6:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12509:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "12497:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12497:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12491:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12491:21:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "12468:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12468:45:1"
},
"nodeType": "YulIf",
"src": "12465:71:1"
},
{
"nodeType": "YulAssignment",
"src": "12545:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12560:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12563:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "12556:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12556:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "12545:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "12434:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "12437:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "12443:7:1",
"type": ""
}
],
"src": "12403:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12625:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12647:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12649:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12649:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12649:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12641:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12644:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "12638:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12638:8:1"
},
"nodeType": "YulIf",
"src": "12635:34:1"
},
{
"nodeType": "YulAssignment",
"src": "12678:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12690:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12693:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12686:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12686:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "12678:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "12607:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "12610:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "12616:4:1",
"type": ""
}
],
"src": "12576:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12753:88:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12784:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12786:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12786:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12786:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12769:5:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12780:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "12776:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12776:6:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "12766:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12766:17:1"
},
"nodeType": "YulIf",
"src": "12763:43:1"
},
{
"nodeType": "YulAssignment",
"src": "12815:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12826:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12833:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12822:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12822:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "12815:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12735:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "12745:3:1",
"type": ""
}
],
"src": "12706:135:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12878:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12895:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12902:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12907:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "12898:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12898:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12888:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12888:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "12888:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12935:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12938:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12928:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12928:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12928:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12959:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12962:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12952:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12952:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12952:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "12846:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13010:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13027:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13034:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13039:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "13030:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13030:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13020:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13020:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "13020:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13067:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13070:4:1",
"type": "",
"value": "0x31"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13060:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13060:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "13060:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13091:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13094:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "13084:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13084:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "13084:15:1"
}
]
},
"name": "panic_error_0x31",
"nodeType": "YulFunctionDefinition",
"src": "12978:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13142:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13159:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13166:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13171:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "13162:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13162:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13152:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13152:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "13152:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13199:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13202:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13192:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13192:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "13192:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13223:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13226:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "13216:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13216:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "13216:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "13110:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13274:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13291:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13298:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13303:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "13294:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13294:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13284:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13284:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "13284:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13331:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13334:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13324:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13324:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "13324:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13355:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13358:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "13348:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13348:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "13348:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "13242:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13419:86:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13483:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13492:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13495:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "13485:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13485:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "13485:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13442:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13453:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13468:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13473:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "13464:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13464:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13477:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13460:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13460:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "13449:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13449:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "13439:2:1"
},
"nodeType": "YulFunctionCall",
"src": "13439:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "13432:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13432:50:1"
},
"nodeType": "YulIf",
"src": "13429:70:1"
}
]
},
"name": "validator_revert_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13408:5:1",
"type": ""
}
],
"src": "13374:131:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value3 := add(_2, 32)\n value4 := length\n }\n function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := calldataload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := shl(5, _4)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, _4)\n dst := add(memPtr, _1)\n let src := add(_3, _1)\n if gt(add(add(_3, _5), _1), dataEnd) { revert(0, 0) }\n let i := 0\n for { } lt(i, _4) { i := add(i, 1) }\n {\n mstore(dst, calldataload(src))\n dst := add(dst, _1)\n src := add(src, _1)\n }\n value0 := memPtr\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n mstore(add(headStart, 128), 1)\n mstore(add(headStart, 160), \" \")\n tail := add(headStart, 192)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint256_t_bool_t_bool_t_uint256__to_t_address_t_uint256_t_bool_t_bool_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n }\n function abi_encode_tuple_t_stringliteral_015264f2b17cd41347fe12531c2abfce786936b7581bae81f7af2b2fef44e6a5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Staking: Not in staking!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_28b9ffdb8c659d835816547f7ca68c7210a5525b031a2450bc5cff91d80d4d74__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 81)\n mstore(add(headStart, 64), \"Staking: NFT not approved for th\")\n mstore(add(headStart, 96), \"e staking address OR Staking not\")\n mstore(add(headStart, 128), \" set as operator!\")\n tail := add(headStart, 160)\n }\n function abi_encode_tuple_t_stringliteral_5d80b3921509aa026a1e14cb7112606f98aced9d1fc8d4669657d7f9a9a061bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"Staking: NFT not on staked!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6e4181a5073ffdca863794c9ee4742e20744639fa9aa0ef6d149877b49fe6174__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"Staking: NFT already on staked!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a3ff21c914d2f2ece0185a71d5793652f5a184598ea13514df1db51ed047b835__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Staking: Not the owner of NFT!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ce6297ace8d2f4150c469b20cd7b8e5b952750ad177b38f44d0b884403086573__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Staking: NFT not staked!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d065b0d811f63168552e9c253c2e45379fe2d96e54ffa13e4cbe8a5b69b6124e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Staking: Already Claimed Reward!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ee2623b20ae76d0ea320d9c2d1487c6c4f7d6069f03da9be02d0d06c11e9cac9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"Staking: Not the NFT owner!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f5892f4d1aed4bedd87e4b3cf27b57e0773e35797c0f946f119afdb326919e1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Staking: Bear not in staking!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f7f49993867d84b05995548b64fbe47a46af19990274ca404954f0f7f46ff344__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Staking: NFT already in staking!\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106101355760003560e01c8063715018a6116100ab578063ae169a501161006f578063ae169a5014610386578063b4231563146103a6578063bacccabe146103c6578063bc1a73d6146103e6578063c1dfa0bb1461047a578063f2fde38b1461049a57600080fd5b8063715018a6146102e657806374e74760146102fb57806380c48c0b14610328578063862bc2c5146103485780638da5cb5b1461036857600080fd5b80633ccfd60b116100fd5780633ccfd60b1461023e57806350baa622146102465780635eeec224146102665780636954f3e5146102865780636e75f5c7146102a65780636eb604e0146102c657600080fd5b806301ffc9a71461013a5780630c313ef714610180578063150b7a021461019f57806321205fed146101e457806336b2c4b214610206575b600080fd5b34801561014657600080fd5b5061016b6101553660046117c2565b6001600160e01b031916630a85bd0160e11b1490565b60405190151581526020015b60405180910390f35b34801561018c57600080fd5b506002545b604051908152602001610177565b3480156101ab57600080fd5b506101cb6101ba36600461163c565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001610177565b3480156101f057600080fd5b506102046101ff3660046116db565b6104ba565b005b34801561021257600080fd5b50600454610226906001600160a01b031681565b6040516001600160a01b039091168152602001610177565b6102046104fe565b34801561025257600080fd5b506102046102613660046117ec565b610594565b34801561027257600080fd5b506102046102813660046117ec565b610643565b34801561029257600080fd5b506102046102a13660046116db565b610727565b3480156102b257600080fd5b506102046102c13660046116db565b610767565b3480156102d257600080fd5b506102046102e13660046117ec565b6107a7565b3480156102f257600080fd5b50610204610aed565b34801561030757600080fd5b5061031b610316366004611602565b610b23565b6040516101779190611842565b34801561033457600080fd5b50610191610343366004611602565b610d1e565b34801561035457600080fd5b506102046103633660046116db565b610e54565b34801561037457600080fd5b506000546001600160a01b0316610226565b34801561039257600080fd5b506102046103a13660046117ec565b610e94565b3480156103b257600080fd5b506101916103c13660046117ec565b611105565b3480156103d257600080fd5b50600354610226906001600160a01b031681565b3480156103f257600080fd5b506104426104013660046117ec565b600160208190526000918252604090912080549181015460028201546003909201546001600160a01b0390931692909160ff80821692610100909204169085565b604080516001600160a01b0390961686526020860194909452911515928401929092529015156060830152608082015260a001610177565b34801561048657600080fd5b506102046104953660046117ec565b611126565b3480156104a657600080fd5b506102046104b5366004611602565b6111ff565b60005b81518110156104fa576104e88282815181106104db576104db611972565b6020026020010151610e94565b806104f28161192b565b9150506104bd565b5050565b6000546001600160a01b031633146105315760405162461bcd60e51b815260040161052890611886565b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461057e576040519150601f19603f3d011682016040523d82523d6000602084013e610583565b606091505b505090508061059157600080fd5b50565b6000546001600160a01b031633146105be5760405162461bcd60e51b815260040161052890611886565b6004805460405163a9059cbb60e01b81523392810192909252602482018390526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561060b57600080fd5b505af115801561061f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa91906117a0565b6000818152600160205260409020426003820155600201805461ff001981166101001790915560ff166106b85760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e4654206e6f74206f6e207374616b65642100000000006044820152606401610528565b600354604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde906106ec90309033908690600401611805565b600060405180830381600087803b15801561070657600080fd5b505af115801561071a573d6000803e3d6000fd5b5050505061059181611297565b60005b81518110156104fa5761075582828151811061074857610748611972565b60200260200101516107a7565b8061075f8161192b565b91505061072a565b60005b81518110156104fa5761079582828151811061078857610788611972565b6020026020010151610643565b8061079f8161192b565b91505061076a565b60008181526001602052604090206002015460ff16156108095760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e673a204e465420616c7265616479206f6e207374616b656421006044820152606401610528565b6003546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e9060240160206040518083038186803b15801561084d57600080fd5b505afa158015610861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610885919061161f565b6001600160a01b0316146108db5760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7420746865204e4654206f776e65722100000000006044820152606401610528565b60035460405163020604bf60e21b8152600481018390526001600160a01b039091169063081812fc9060240160206040518083038186803b15801561091f57600080fd5b505afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610957919061161f565b6001600160a01b0316306001600160a01b031614806109f2575060035460405163e985e9c560e01b81523360048201523060248201526001600160a01b039091169063e985e9c59060440160206040518083038186803b1580156109ba57600080fd5b505afa1580156109ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f291906117a0565b610a7e5760405162461bcd60e51b815260206004820152605160248201527f5374616b696e673a204e4654206e6f7420617070726f76656420666f7220746860448201527f65207374616b696e672061646472657373204f52205374616b696e67206e6f7460648201527020736574206173206f70657261746f722160781b608482015260a401610528565b600354604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde90610ab290339030908690600401611805565b600060405180830381600087803b158015610acc57600080fd5b505af1158015610ae0573d6000803e3d6000fd5b5050505061059181611455565b6000546001600160a01b03163314610b175760405162461bcd60e51b815260040161052890611886565b610b21600061155a565b565b60025460609060009067ffffffffffffffff811115610b4457610b44611988565b604051908082528060200260200182016040528015610b6d578160200160208202803683370190505b5090506000805b600254811015610c795760006001600060028481548110610b9757610b97611972565b600091825260208083209091015483528281019390935260409182019020815160a08101835281546001600160a01b03908116808352600184015495830195909552600283015460ff808216151595840195909552610100900490931615156060820152600390910154608082015292508716148015610c18575080604001515b15610c665760028281548110610c3057610c30611972565b9060005260206000200154848481518110610c4d57610c4d611972565b602090810291909101015282610c628161192b565b9350505b5080610c718161192b565b915050610b74565b5060008167ffffffffffffffff811115610c9557610c95611988565b604051908082528060200260200182016040528015610cbe578160200160208202803683370190505b50905060005b82811015610d1557838181518110610cde57610cde611972565b6020026020010151828281518110610cf857610cf8611972565b602090810291909101015280610d0d8161192b565b915050610cc4565b50949350505050565b600080610d2a83610b23565b90506000805b8251811015610e4c5760016000848381518110610d4f57610d4f611972565b6020026020010151815260200190815260200160002060020160019054906101000a900460ff1615610df457610de360016000858481518110610d9457610d94611972565b602002602001015181526020019081526020016000206001015460016000868581518110610dc457610dc4611972565b60200260200101518152602001908152602001600020600301546115aa565b610ded90836118bb565b9150610e3a565b610e2d60016000858481518110610e0d57610e0d611972565b6020026020010151815260200190815260200160002060010154426115aa565b610e3790836118bb565b91505b80610e448161192b565b915050610d30565b509392505050565b60005b81518110156104fa57610e82828281518110610e7557610e75611972565b6020026020010151611126565b80610e8c8161192b565b915050610e57565b600081815260016020526040902080546001600160a01b0316610ef95760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a2042656172206e6f7420696e207374616b696e67210000006044820152606401610528565b80546001600160a01b03163314610f525760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a204e6f7420746865206f776e6572206f66204e46542100006044820152606401610528565b6002810154600090610100900460ff1615610fd7578160010154826003015411610fbe5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a20416c726561647920436c61696d656420526577617264216044820152606401610528565b610fd0826001015483600301546115aa565b905061103c565b600282015460ff1661102b5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a204e6f7420696e207374616b696e672100000000000000006044820152606401610528565b6110398260010154426115aa565b90505b4260018301556004805460405163a9059cbb60e01b81523392810192909252602482018390526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561108f57600080fd5b505af11580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906117a0565b50604080518481523360208201527f5dd59f4285b36241394b73f8f7ae03d0290b030a86803cf2562ecf33eeb617bd910160405180910390a1505050565b6002818154811061111557600080fd5b600091825260209091200154905081565b60008181526001602052604090206002015460ff166111875760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e4654206e6f74206f6e207374616b65642100000000006044820152606401610528565b600354604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde906111bb90309033908690600401611805565b600060405180830381600087803b1580156111d557600080fd5b505af11580156111e9573d6000803e3d6000fd5b505050506111f681610e94565b61059181611297565b6000546001600160a01b031633146112295760405162461bcd60e51b815260040161052890611886565b6001600160a01b03811661128e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610528565b6105918161155a565b6000818152600160205260409020600281015460ff166112f95760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a204e4654206e6f74207374616b65642100000000000000006044820152606401610528565b80546001600160a01b031633146113525760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a204e6f7420746865206f776e6572206f66204e46542100006044820152606401610528565b60028101805460ff19169055604080518381524260208201527f69f6d6e6926b6914c628cca5ab19879a4099facaba2b44626e07d8e38ebd189b910160405180910390a160005b6002548110156114505782600282815481106113b7576113b7611972565b9060005260206000200154141561143e57600280546113d890600190611914565b815481106113e8576113e8611972565b90600052602060002001546002828154811061140657611406611972565b60009182526020909120015560028054806114235761142361195c565b60019003818190600052602060002001600090559055505050565b806114488161192b565b915050611399565b505050565b6000818152600160205260409020600281015460ff16156114b85760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a204e465420616c726561647920696e207374616b696e67216044820152606401610528565b6002818101805483546001600160a01b03191633908117855542600180870182905561ffff199093168317909355835491820184556000939093527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0184905560408051928352602083018590528201527f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee909060600160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006115d76006546115d16005546115cb87876115de90919063ffffffff16565b906115ea565b906115f6565b9392505050565b60006115d78284611914565b60006115d782846118f5565b60006115d782846118d3565b60006020828403121561161457600080fd5b81356115d78161199e565b60006020828403121561163157600080fd5b81516115d78161199e565b60008060008060006080868803121561165457600080fd5b853561165f8161199e565b9450602086013561166f8161199e565b935060408601359250606086013567ffffffffffffffff8082111561169357600080fd5b818801915088601f8301126116a757600080fd5b8135818111156116b657600080fd5b8960208285010111156116c857600080fd5b9699959850939650602001949392505050565b600060208083850312156116ee57600080fd5b823567ffffffffffffffff8082111561170657600080fd5b818501915085601f83011261171a57600080fd5b81358181111561172c5761172c611988565b8060051b604051601f19603f8301168101818110858211171561175157611751611988565b604052828152858101935084860182860187018a101561177057600080fd5b600095505b83861015611793578035855260019590950194938601938601611775565b5098975050505050505050565b6000602082840312156117b257600080fd5b815180151581146115d757600080fd5b6000602082840312156117d457600080fd5b81356001600160e01b0319811681146115d757600080fd5b6000602082840312156117fe57600080fd5b5035919050565b6001600160a01b0393841681529190921660208201526040810191909152608060608201819052600190820152600160fd1b60a082015260c00190565b6020808252825182820181905260009190848201906040850190845b8181101561187a5783518352928401929184019160010161185e565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156118ce576118ce611946565b500190565b6000826118f057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561190f5761190f611946565b500290565b60008282101561192657611926611946565b500390565b600060001982141561193f5761193f611946565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461059157600080fdfea2646970667358221220475fbe6305e87e1a181c0b50e1cd9d0dfe79169d2fb9b9f3e6b2cd199f8f8de064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x135 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xAE169A50 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xAE169A50 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xB4231563 EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0xBACCCABE EQ PUSH2 0x3C6 JUMPI DUP1 PUSH4 0xBC1A73D6 EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0xC1DFA0BB EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x74E74760 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x80C48C0B EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x862BC2C5 EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3CCFD60B GT PUSH2 0xFD JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x50BAA622 EQ PUSH2 0x246 JUMPI DUP1 PUSH4 0x5EEEC224 EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0x6954F3E5 EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0x6E75F5C7 EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0x6EB604E0 EQ PUSH2 0x2C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0xC313EF7 EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x21205FED EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x36B2C4B2 EQ PUSH2 0x206 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16B PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x1BA CALLDATASIZE PUSH1 0x4 PUSH2 0x163C JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0x4BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x226 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x177 JUMP JUMPDEST PUSH2 0x204 PUSH2 0x4FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x252 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x261 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x594 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x2A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0x727 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x2C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x7A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0xAED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x316 CALLDATASIZE PUSH1 0x4 PUSH2 0x1602 JUMP JUMPDEST PUSH2 0xB23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x177 SWAP2 SWAP1 PUSH2 0x1842 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x1602 JUMP JUMPDEST PUSH2 0xD1E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0x16DB JUMP JUMPDEST PUSH2 0xE54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x226 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x3A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0xE94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x191 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x1105 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x226 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x442 PUSH2 0x401 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x3 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP3 AND SWAP3 PUSH2 0x100 SWAP1 SWAP3 DIV AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x495 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EC JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1602 JUMP JUMPDEST PUSH2 0x11FF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0x4E8 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x4DB JUMPI PUSH2 0x4DB PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xE94 JUMP JUMPDEST DUP1 PUSH2 0x4F2 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4BD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x531 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 SELFBALANCE SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x57E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x583 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x591 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x60B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x61F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4FA SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 TIMESTAMP PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT DUP2 AND PUSH2 0x100 OR SWAP1 SWAP2 SSTORE PUSH1 0xFF AND PUSH2 0x6B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F74206F6E207374616B6564210000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5C46A7EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB88D4FDE SWAP1 PUSH2 0x6EC SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1805 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x71A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x591 DUP2 PUSH2 0x1297 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0x755 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x748 JUMPI PUSH2 0x748 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH2 0x75F DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x72A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0x795 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x788 JUMPI PUSH2 0x788 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x643 JUMP JUMPDEST DUP1 PUSH2 0x79F DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E465420616C7265616479206F6E207374616B65642100 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x861 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x885 SWAP2 SWAP1 PUSH2 0x161F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420746865204E4654206F776E6572210000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x20604BF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x81812FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x91F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x933 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x957 SWAP2 SWAP1 PUSH2 0x161F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x9F2 JUMPI POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE985E9C5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE985E9C5 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F2 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0xA7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x51 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F7420617070726F76656420666F72207468 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65207374616B696E672061646472657373204F52205374616B696E67206E6F74 PUSH1 0x64 DUP3 ADD MSTORE PUSH17 0x20736574206173206F70657261746F7221 PUSH1 0x78 SHL PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5C46A7EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB88D4FDE SWAP1 PUSH2 0xAB2 SWAP1 CALLER SWAP1 ADDRESS SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1805 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x591 DUP2 PUSH2 0x1455 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH2 0xB21 PUSH1 0x0 PUSH2 0x155A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB44 JUMPI PUSH2 0xB44 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xB6D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xC79 JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xB97 JUMPI PUSH2 0xB97 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP4 MSTORE DUP3 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP1 DUP4 MSTORE PUSH1 0x1 DUP5 ADD SLOAD SWAP6 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH2 0x100 SWAP1 DIV SWAP1 SWAP4 AND ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x3 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE SWAP3 POP DUP8 AND EQ DUP1 ISZERO PUSH2 0xC18 JUMPI POP DUP1 PUSH1 0x40 ADD MLOAD JUMPDEST ISZERO PUSH2 0xC66 JUMPI PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xC30 JUMPI PUSH2 0xC30 PUSH2 0x1972 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xC4D JUMPI PUSH2 0xC4D PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP3 PUSH2 0xC62 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP4 POP POP JUMPDEST POP DUP1 PUSH2 0xC71 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB74 JUMP JUMPDEST POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC95 JUMPI PUSH2 0xC95 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCBE JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xD15 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xCDE JUMPI PUSH2 0xCDE PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCF8 JUMPI PUSH2 0xCF8 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0xD0D DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xCC4 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD2A DUP4 PUSH2 0xB23 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0xE4C JUMPI PUSH1 0x1 PUSH1 0x0 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xD4F JUMPI PUSH2 0xD4F PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xDF4 JUMPI PUSH2 0xDE3 PUSH1 0x1 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD94 JUMPI PUSH2 0xD94 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x0 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xDC4 JUMPI PUSH2 0xDC4 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH2 0x15AA JUMP JUMPDEST PUSH2 0xDED SWAP1 DUP4 PUSH2 0x18BB JUMP JUMPDEST SWAP2 POP PUSH2 0xE3A JUMP JUMPDEST PUSH2 0xE2D PUSH1 0x1 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xE0D JUMPI PUSH2 0xE0D PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH2 0x15AA JUMP JUMPDEST PUSH2 0xE37 SWAP1 DUP4 PUSH2 0x18BB JUMP JUMPDEST SWAP2 POP JUMPDEST DUP1 PUSH2 0xE44 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD30 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4FA JUMPI PUSH2 0xE82 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE75 JUMPI PUSH2 0xE75 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH2 0xE8C DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xEF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A2042656172206E6F7420696E207374616B696E6721000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420746865206F776E6572206F66204E4654210000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFD7 JUMPI DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x3 ADD SLOAD GT PUSH2 0xFBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A20416C726561647920436C61696D65642052657761726421 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH2 0xFD0 DUP3 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x3 ADD SLOAD PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP PUSH2 0x103C JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH2 0x102B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420696E207374616B696E67210000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH2 0x1039 DUP3 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP JUMPDEST TIMESTAMP PUSH1 0x1 DUP4 ADD SSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x108F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C7 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE CALLER PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5DD59F4285B36241394B73F8F7AE03D0290B030A86803CF2562ECF33EEB617BD SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1115 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x1187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F74206F6E207374616B6564210000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5C46A7EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB88D4FDE SWAP1 PUSH2 0x11BB SWAP1 ADDRESS SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1805 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x11F6 DUP2 PUSH2 0xE94 JUMP JUMPDEST PUSH2 0x591 DUP2 PUSH2 0x1297 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1229 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x528 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x128E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x528 JUMP JUMPDEST PUSH2 0x591 DUP2 PUSH2 0x155A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x12F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E4654206E6F74207374616B6564210000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1352 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E6F7420746865206F776E6572206F66204E4654210000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x69F6D6E6926B6914C628CCA5AB19879A4099FACABA2B44626E07D8E38EBD189B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0x1450 JUMPI DUP3 PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x13B7 JUMPI PUSH2 0x13B7 PUSH2 0x1972 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD EQ ISZERO PUSH2 0x143E JUMPI PUSH1 0x2 DUP1 SLOAD PUSH2 0x13D8 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1914 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x13E8 JUMPI PUSH2 0x13E8 PUSH2 0x1972 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1406 JUMPI PUSH2 0x1406 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH1 0x2 DUP1 SLOAD DUP1 PUSH2 0x1423 JUMPI PUSH2 0x1423 PUSH2 0x195C JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x1448 DUP2 PUSH2 0x192B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1399 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x14B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5374616B696E673A204E465420616C726561647920696E207374616B696E6721 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x528 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER SWAP1 DUP2 OR DUP6 SSTORE TIMESTAMP PUSH1 0x1 DUP1 DUP8 ADD DUP3 SWAP1 SSTORE PUSH2 0xFFFF NOT SWAP1 SWAP4 AND DUP4 OR SWAP1 SWAP4 SSTORE DUP4 SLOAD SWAP2 DUP3 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE ADD DUP5 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 ADD MSTORE PUSH32 0x1449C6DD7851ABC30ABF37F57715F492010519147CC2652FBC38202C18A6EE90 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 PUSH1 0x6 SLOAD PUSH2 0x15D1 PUSH1 0x5 SLOAD PUSH2 0x15CB DUP8 DUP8 PUSH2 0x15DE SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH2 0x15EA JUMP JUMPDEST SWAP1 PUSH2 0x15F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 DUP3 DUP5 PUSH2 0x1914 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 DUP3 DUP5 PUSH2 0x18F5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D7 DUP3 DUP5 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x15D7 DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15D7 DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x165F DUP2 PUSH2 0x199E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x166F DUP2 PUSH2 0x199E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x16C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x171A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x172C JUMPI PUSH2 0x172C PUSH2 0x1988 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x1751 JUMPI PUSH2 0x1751 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP6 DUP2 ADD SWAP4 POP DUP5 DUP7 ADD DUP3 DUP7 ADD DUP8 ADD DUP11 LT ISZERO PUSH2 0x1770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x1793 JUMPI DUP1 CALLDATALOAD DUP6 MSTORE PUSH1 0x1 SWAP6 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP7 ADD SWAP4 DUP7 ADD PUSH2 0x1775 JUMP JUMPDEST POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x15D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x15D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x1 SWAP1 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xFD SHL PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x187A JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x185E JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x18CE JUMPI PUSH2 0x18CE PUSH2 0x1946 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x18F0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x190F JUMPI PUSH2 0x190F PUSH2 0x1946 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1926 JUMPI PUSH2 0x1926 PUSH2 0x1946 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x193F JUMPI PUSH2 0x193F PUSH2 0x1946 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x591 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0x5F 0xBE PUSH4 0x5E87E1A XOR SHR SIGNEXTEND POP 0xE1 0xCD SWAP14 0xD INVALID PUSH26 0x169D2FB9B9F3E6B2CD199F8F8DE064736F6C6343000807003300 ",
"sourceMap": "19944:6837:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26656:122;;;;;;;;;;-1:-1:-1;26656:122:0;;;;;:::i;:::-;-1:-1:-1;;;;;;26740:31:0;-1:-1:-1;;;26740:31:0;;26656:122;;;;6625:14:1;;6618:22;6600:41;;6588:2;6573:18;26656:122:0;;;;;;;;25904:95;;;;;;;;;;-1:-1:-1;25981:5:0;:12;25904:95;;;11480:25:1;;;11468:2;11453:18;25904:95:0;11334:177:1;26422:205:0;;;;;;;;;;-1:-1:-1;26422:205:0;;;;;:::i;:::-;-1:-1:-1;;;26422:205:0;;;;;;;;;;;-1:-1:-1;;;;;;6814:33:1;;;6796:52;;6784:2;6769:18;26422:205:0;6652:202:1;24581:154:0;;;;;;;;;;-1:-1:-1;24581:154:0;;;;;:::i;:::-;;:::i;:::-;;20682:65;;;;;;;;;;-1:-1:-1;20682:65:0;;;;-1:-1:-1;;;;;20682:65:0;;;;;;-1:-1:-1;;;;;3726:32:1;;;3708:51;;3696:2;3681:18;20682:65:0;3562:203:1;26063:147:0;;;:::i;26216:112::-;;;;;;;;;;-1:-1:-1;26216:112:0;;;;;:::i;:::-;;:::i;22470:361::-;;;;;;;;;;-1:-1:-1;22470:361:0;;;;;:::i;:::-;;:::i;21092:158::-;;;;;;;;;;-1:-1:-1;21092:158:0;;;;;:::i;:::-;;:::i;22278:188::-;;;;;;;;;;-1:-1:-1;22278:188:0;;;;;:::i;:::-;;:::i;21256:577::-;;;;;;;;;;-1:-1:-1;21256:577:0;;;;;:::i;:::-;;:::i;11256:103::-;;;;;;;;;;;;;:::i;24741:606::-;;;;;;;;;;-1:-1:-1;24741:606:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25353:545::-;;;;;;;;;;-1:-1:-1;25353:545:0;;;;;:::i;:::-;;:::i;21839:162::-;;;;;;;;;;-1:-1:-1;21839:162:0;;;;;:::i;:::-;;:::i;10605:87::-;;;;;;;;;;-1:-1:-1;10651:7:0;10678:6;-1:-1:-1;;;;;10678:6:0;10605:87;;23783:792;;;;;;;;;;-1:-1:-1;23783:792:0;;;;;:::i;:::-;;:::i;20545:22::-;;;;;;;;;;-1:-1:-1;20545:22:0;;;;;:::i;:::-;;:::i;20591:67::-;;;;;;;;;;-1:-1:-1;20591:67:0;;;;-1:-1:-1;;;;;20591:67:0;;;20492:48;;;;;;;;;;-1:-1:-1;20492:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20492:48:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5224:32:1;;;5206:51;;5288:2;5273:18;;5266:34;;;;5343:14;;5336:22;5316:18;;;5309:50;;;;5402:14;;5395:22;5390:2;5375:18;;5368:50;5449:3;5434:19;;5427:35;5193:3;5178:19;20492:48:0;4959:509:1;22007:265:0;;;;;;;;;;-1:-1:-1;22007:265:0;;;;;:::i;:::-;;:::i;11514:201::-;;;;;;;;;;-1:-1:-1;11514:201:0;;;;;:::i;:::-;;:::i;24581:154::-;24654:6;24650:80;24666:9;:16;24664:1;:18;24650:80;;;24697:25;24709:9;24719:1;24709:12;;;;;;;;:::i;:::-;;;;;;;24697:11;:25::i;:::-;24684:3;;;;:::i;:::-;;;;24650:80;;;;24581:154;:::o;26063:147::-;10651:7;10678:6;-1:-1:-1;;;;;10678:6:0;9494:10;10825:23;10817:68;;;;-1:-1:-1;;;10817:68:0;;;;;;;:::i;:::-;;;;;;;;;26118:7:::1;10678:6:::0;;26131:55:::1;::::0;-1:-1:-1;;;;;10678:6:0;;;;26160:21:::1;::::0;26118:7;26131:55;26118:7;26131:55;26160:21;10678:6;26131:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26117:69;;;26201:2;26193:11;;;::::0;::::1;;26110:100;26063:147::o:0;26216:112::-;10651:7;10678:6;-1:-1:-1;;;;;10678:6:0;9494:10;10825:23;10817:68;;;;-1:-1:-1;;;10817:68:0;;;;;;;:::i;:::-;26287:5:::1;::::0;;26280:42:::1;::::0;-1:-1:-1;;;26280:42:0;;26303:10:::1;26280:42:::0;;::::1;4854:51:1::0;;;;4921:18;;;4914:34;;;-1:-1:-1;;;;;26287:5:0::1;::::0;26280:22:::1;::::0;4827:18:1;;26280:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22470:361::-:0;22535:20;;;;:10;:20;;;;;22575:15;22535:37;;;:55;22597:35;;:42;;-1:-1:-1;;22597:42:0;;;;;;;;22654:29;22646:69;;;;-1:-1:-1;;;22646:69:0;;8311:2:1;22646:69:0;;;8293:21:1;8350:2;8330:18;;;8323:30;8389:29;8369:18;;;8362:57;8436:18;;22646:69:0;8109:351:1;22646:69:0;22730:7;;22722:75;;-1:-1:-1;;;22722:75:0;;-1:-1:-1;;;;;22730:7:0;;;;22722:33;;:75;;22764:4;;22771:10;;22783:8;;22722:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22804:21;22816:8;22804:11;:21::i;21092:158::-;21165:9;21161:84;21179:9;:16;21177:1;:18;21161:84;;;21213:22;21222:9;21232:1;21222:12;;;;;;;;:::i;:::-;;;;;;;21213:8;:22::i;:::-;21196:3;;;;:::i;:::-;;;;21161:84;;22278:188;22365:9;22361:100;22379:9;:16;22377:1;:18;22361:100;;;22414:37;22438:9;22448:1;22438:12;;;;;;;;:::i;:::-;;;;;;;22414:23;:37::i;:::-;22397:3;;;;:::i;:::-;;;;22361:100;;21256:577;21315:20;;;;:10;:20;;;;;:29;;;;;21314:30;21306:74;;;;-1:-1:-1;;;21306:74:0;;8667:2:1;21306:74:0;;;8649:21:1;8706:2;8686:18;;;8679:30;8745:33;8725:18;;;8718:61;8796:18;;21306:74:0;8465:355:1;21306:74:0;21403:7;;21395:34;;-1:-1:-1;;;21395:34:0;;;;;11480:25:1;;;21431:10:0;;-1:-1:-1;;;;;21403:7:0;;21395:24;;11453:18:1;;21395:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21395:46:0;;21387:86;;;;-1:-1:-1;;;21387:86:0;;10461:2:1;21387:86:0;;;10443:21:1;10500:2;10480:18;;;10473:30;10539:29;10519:18;;;10512:57;10586:18;;21387:86:0;10259:351:1;21387:86:0;21523:7;;21515:38;;-1:-1:-1;;;21515:38:0;;;;;11480:25:1;;;-1:-1:-1;;;;;21523:7:0;;;;21515:28;;11453:18:1;;21515:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21498:55:0;21506:4;-1:-1:-1;;;;;21498:55:0;;:119;;;-1:-1:-1;21565:7:0;;21557:60;;-1:-1:-1;;;21557:60:0;;21591:10;21557:60;;;3982:34:1;21611:4:0;4032:18:1;;;4025:43;-1:-1:-1;;;;;21565:7:0;;;;21557:33;;3917:18:1;;21557:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21480:239;;;;-1:-1:-1;;;21480:239:0;;7821:2:1;21480:239:0;;;7803:21:1;7860:2;7840:18;;;7833:30;7899:34;7879:18;;;7872:62;7970:34;7950:18;;;7943:62;-1:-1:-1;;;8021:19:1;;;8014:48;8079:19;;21480:239:0;7619:485:1;21480:239:0;21734:7;;21726:75;;-1:-1:-1;;;21726:75:0;;-1:-1:-1;;;;;21734:7:0;;;;21726:33;;:75;;21760:10;;21780:4;;21787:8;;21726:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21808:19;21818:8;21808:9;:19::i;11256:103::-;10651:7;10678:6;-1:-1:-1;;;;;10678:6:0;9494:10;10825:23;10817:68;;;;-1:-1:-1;;;10817:68:0;;;;;;;:::i;:::-;11321:30:::1;11348:1;11321:18;:30::i;:::-;11256:103::o:0;24741:606::-;24872:5;:12;24801:16;;24827:28;;24858:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24858:27:0;;24827:58;;24894:13;24922:9;24918:233;24937:5;:12;24935:14;;24918:233;;;24966:23;24992:10;:20;25003:5;25009:1;25003:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;24992:20;;;;;;;;;;;;;;;24966:46;;;;;;;;;-1:-1:-1;;;;;24966:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25026:19:0;;;:37;;;;;25049:5;:14;;;25026:37;25023:119;;;25100:5;25106:1;25100:8;;;;;;;;:::i;:::-;;;;;;;;;25079:11;25091:5;25079:18;;;;;;;;:::i;:::-;;;;;;;;;;:29;25123:7;;;;:::i;:::-;;;;25023:119;-1:-1:-1;24951:3:0;;;;:::i;:::-;;;;24918:233;;;;25159:32;25208:5;25194:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25194:20:0;;25159:55;;25227:9;25223:88;25242:5;25240:1;:7;25223:88;;;25287:11;25299:1;25287:14;;;;;;;;:::i;:::-;;;;;;;25266:15;25282:1;25266:18;;;;;;;;:::i;:::-;;;;;;;;;;:35;25249:3;;;;:::i;:::-;;;;25223:88;;;-1:-1:-1;25326:15:0;24741:606;-1:-1:-1;;;;24741:606:0:o;25353:545::-;25418:7;25435:28;25466:21;25480:6;25466:13;:21::i;:::-;25435:52;;25496:14;25527:9;25523:348;25542:11;:18;25540:1;:20;25523:348;;;25582:10;:26;25593:11;25605:1;25593:14;;;;;;;;:::i;:::-;;;;;;;25582:26;;;;;;;;;;;:41;;;;;;;;;;;;25579:282;;;25648:100;25664:10;:26;25675:11;25687:1;25675:14;;;;;;;;:::i;:::-;;;;;;;25664:26;;;;;;;;;;;:38;;;25704:10;:26;25715:11;25727:1;25715:14;;;;;;;;:::i;:::-;;;;;;;25704:26;;;;;;;;;;;:43;;;25648:15;:100::i;:::-;25638:110;;;;:::i;:::-;;;25579:282;;;25789:72;25805:10;:26;25816:11;25828:1;25816:14;;;;;;;;:::i;:::-;;;;;;;25805:26;;;;;;;;;;;:38;;;25845:15;25789;:72::i;:::-;25779:82;;;;:::i;:::-;;;25579:282;25562:3;;;;:::i;:::-;;;;25523:348;;;-1:-1:-1;25886:6:0;25353:545;-1:-1:-1;;;25353:545:0:o;21839:162::-;21914:9;21910:86;21928:9;:16;21926:1;:18;21910:86;;;21962:24;21973:9;21983:1;21973:12;;;;;;;;:::i;:::-;;;;;;;21962:10;:24::i;:::-;21945:3;;;;:::i;:::-;;;;21910:86;;23783:792;23836:23;23862:20;;;:10;:20;;;;;23897:10;;-1:-1:-1;;;;;23897:10:0;23889:66;;;;-1:-1:-1;;;23889:66:0;;10817:2:1;23889:66:0;;;10799:21:1;10856:2;10836:18;;;10829:30;10895:31;10875:18;;;10868:59;10944:18;;23889:66:0;10615:353:1;23889:66:0;23971:10;;-1:-1:-1;;;;;23971:10:0;23985;23971:24;23963:67;;;;-1:-1:-1;;;23963:67:0;;9388:2:1;23963:67:0;;;9370:21:1;9427:2;9407:18;;;9400:30;9466:32;9446:18;;;9439:60;9516:18;;23963:67:0;9186:354:1;23963:67:0;24066:19;;;;24038:14;;24066:19;;;;;24063:348;;;24129:4;:16;;;24105:4;:21;;;:40;24097:85;;;;-1:-1:-1;;;24097:85:0;;10100:2:1;24097:85:0;;;10082:21:1;;;10119:18;;;10112:30;10178:34;10158:18;;;10151:62;10230:18;;24097:85:0;9898:356:1;24097:85:0;24202:56;24218:4;:16;;;24236:4;:21;;;24202:15;:56::i;:::-;24193:65;;24063:348;;;24291:13;;;;;;24283:50;;;;-1:-1:-1;;;24283:50:0;;7061:2:1;24283:50:0;;;7043:21:1;7100:2;7080:18;;;7073:30;7139:26;7119:18;;;7112:54;7183:18;;24283:50:0;6859:348:1;24283:50:0;24353;24369:4;:16;;;24387:15;24353;:50::i;:::-;24344:59;;24063:348;24436:15;24417:16;;;:34;24487:5;;;24480:42;;-1:-1:-1;;;24480:42:0;;24503:10;24480:42;;;4854:51:1;;;;4921:18;;;4914:34;;;-1:-1:-1;;;;;24487:5:0;;24480:22;;4827:18:1;;24480:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;24534:35:0;;;11690:25:1;;;24558:10:0;11746:2:1;11731:18;;11724:60;24534:35:0;;11663:18:1;24534:35:0;;;;;;;23829:746;;23783:792;:::o;20545:22::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20545:22:0;:::o;22007:265::-;22067:20;;;;:10;:20;;;;;:29;;;;;22059:69;;;;-1:-1:-1;;;22059:69:0;;8311:2:1;22059:69:0;;;8293:21:1;8350:2;8330:18;;;8323:30;8389:29;8369:18;;;8362:57;8436:18;;22059:69:0;8109:351:1;22059:69:0;22143:7;;22135:75;;-1:-1:-1;;;22135:75:0;;-1:-1:-1;;;;;22143:7:0;;;;22135:33;;:75;;22177:4;;22184:10;;22196:8;;22135:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22217:21;22229:8;22217:11;:21::i;:::-;22245;22257:8;22245:11;:21::i;11514:201::-;10651:7;10678:6;-1:-1:-1;;;;;10678:6:0;9494:10;10825:23;10817:68;;;;-1:-1:-1;;;10817:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11603:22:0;::::1;11595:73;;;::::0;-1:-1:-1;;;11595:73:0;;7414:2:1;11595:73:0::1;::::0;::::1;7396:21:1::0;7453:2;7433:18;;;7426:30;7492:34;7472:18;;;7465:62;-1:-1:-1;;;7543:18:1;;;7536:36;7589:19;;11595:73:0::1;7212:402:1::0;11595:73:0::1;11679:28;11698:8;11679:18;:28::i;23245:532::-:0;23300:23;23326:20;;;:10;:20;;;;;23361:13;;;;;;23353:50;;;;-1:-1:-1;;;23353:50:0;;9747:2:1;23353:50:0;;;9729:21:1;9786:2;9766:18;;;9759:30;9825:26;9805:18;;;9798:54;9869:18;;23353:50:0;9545:348:1;23353:50:0;23418:10;;-1:-1:-1;;;;;23418:10:0;23432;23418:24;23410:67;;;;-1:-1:-1;;;23410:67:0;;9388:2:1;23410:67:0;;;9370:21:1;9427:2;9407:18;;;9400:30;9466:32;9446:18;;;9439:60;9516:18;;23410:67:0;9186:354:1;23410:67:0;23484:13;;;:21;;-1:-1:-1;;23484:21:0;;;23519:35;;;11969:25:1;;;23538:15:0;12025:2:1;12010:18;;12003:34;23519:35:0;;11942:18:1;23519:35:0;;;;;;;23591:9;23587:185;23606:5;:12;23604:14;;23587:185;;;23650:8;23638:5;23644:1;23638:8;;;;;;;;:::i;:::-;;;;;;;;;:20;23635:130;;;23685:5;23691:12;;:14;;23704:1;;23691:14;:::i;:::-;23685:21;;;;;;;;:::i;:::-;;;;;;;;;23674:5;23680:1;23674:8;;;;;;;;:::i;:::-;;;;;;;;;;:32;23721:5;:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;23747:7;;23245:532;:::o;23635:130::-;23620:3;;;;:::i;:::-;;;;23587:185;;;;23293:484;23245:532;:::o;22837:402::-;22889:23;22915:20;;;:10;:20;;;;;22951:13;;;;;;22950:14;22942:59;;;;-1:-1:-1;;;22942:59:0;;11175:2:1;22942:59:0;;;11157:21:1;;;11194:18;;;11187:30;11253:34;11233:18;;;11226:62;11305:18;;22942:59:0;10973:356:1;22942:59:0;23008:13;;;;:20;;23035:23;;-1:-1:-1;;;;;;23035:23:0;23048:10;23035:23;;;;;23084:15;-1:-1:-1;23065:16:0;;;:34;;;-1:-1:-1;;23106:27:0;;;;;;;;23156:20;;;;;;;-1:-1:-1;23156:20:0;;;;;;;;;23188:45;;;5675:51:1;;;5757:2;5742:18;;5735:34;;;5785:18;;5778:34;23188:45:0;;5663:2:1;5648:18;23188:45:0;;;;;;;22882:357;22837:402;:::o;11875:191::-;11949:16;11968:6;;-1:-1:-1;;;;;11985:17:0;;;-1:-1:-1;;;;;;11985:17:0;;;;;;12018:40;;11968:6;;;;;;;12018:40;;11949:16;12018:40;11938:128;11875:191;:::o;20904:182::-;20997:7;21019:60;21066:12;;21019:42;21056:4;;21019:32;21038:12;21019:14;:18;;:32;;;;:::i;:::-;:36;;:42::i;:::-;:46;;:60::i;:::-;21012:67;20904:182;-1:-1:-1;;;20904:182:0:o;16160:98::-;16218:7;16245:5;16249:1;16245;:5;:::i;16517:98::-;16575:7;16602:5;16606:1;16602;:5;:::i;16916:98::-;16974:7;17001:5;17005:1;17001;:5;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:936::-;619:6;627;635;643;651;704:3;692:9;683:7;679:23;675:33;672:53;;;721:1;718;711:12;672:53;760:9;747:23;779:31;804:5;779:31;:::i;:::-;829:5;-1:-1:-1;886:2:1;871:18;;858:32;899:33;858:32;899:33;:::i;:::-;951:7;-1:-1:-1;1005:2:1;990:18;;977:32;;-1:-1:-1;1060:2:1;1045:18;;1032:32;1083:18;1113:14;;;1110:34;;;1140:1;1137;1130:12;1110:34;1178:6;1167:9;1163:22;1153:32;;1223:7;1216:4;1212:2;1208:13;1204:27;1194:55;;1245:1;1242;1235:12;1194:55;1285:2;1272:16;1311:2;1303:6;1300:14;1297:34;;;1327:1;1324;1317:12;1297:34;1372:7;1367:2;1358:6;1354:2;1350:15;1346:24;1343:37;1340:57;;;1393:1;1390;1383:12;1340:57;522:936;;;;-1:-1:-1;522:936:1;;-1:-1:-1;1424:2:1;1416:11;;1446:6;522:936;-1:-1:-1;;;522:936:1:o;1463:1126::-;1547:6;1578:2;1621;1609:9;1600:7;1596:23;1592:32;1589:52;;;1637:1;1634;1627:12;1589:52;1677:9;1664:23;1706:18;1747:2;1739:6;1736:14;1733:34;;;1763:1;1760;1753:12;1733:34;1801:6;1790:9;1786:22;1776:32;;1846:7;1839:4;1835:2;1831:13;1827:27;1817:55;;1868:1;1865;1858:12;1817:55;1904:2;1891:16;1926:2;1922;1919:10;1916:36;;;1932:18;;:::i;:::-;1978:2;1975:1;1971:10;2010:2;2004:9;2073:2;2069:7;2064:2;2060;2056:11;2052:25;2044:6;2040:38;2128:6;2116:10;2113:22;2108:2;2096:10;2093:18;2090:46;2087:72;;;2139:18;;:::i;:::-;2175:2;2168:22;2225:18;;;2259:15;;;;-1:-1:-1;2294:11:1;;;2324;;;2320:20;;2317:33;-1:-1:-1;2314:53:1;;;2363:1;2360;2353:12;2314:53;2385:1;2376:10;;2395:163;2409:2;2406:1;2403:9;2395:163;;;2466:17;;2454:30;;2427:1;2420:9;;;;;2504:12;;;;2536;;2395:163;;;-1:-1:-1;2577:6:1;1463:1126;-1:-1:-1;;;;;;;;1463:1126:1:o;2594:277::-;2661:6;2714:2;2702:9;2693:7;2689:23;2685:32;2682:52;;;2730:1;2727;2720:12;2682:52;2762:9;2756:16;2815:5;2808:13;2801:21;2794:5;2791:32;2781:60;;2837:1;2834;2827:12;2876:286;2934:6;2987:2;2975:9;2966:7;2962:23;2958:32;2955:52;;;3003:1;3000;2993:12;2955:52;3029:23;;-1:-1:-1;;;;;;3081:32:1;;3071:43;;3061:71;;3128:1;3125;3118:12;3167:180;3226:6;3279:2;3267:9;3258:7;3254:23;3250:32;3247:52;;;3295:1;3292;3285:12;3247:52;-1:-1:-1;3318:23:1;;3167:180;-1:-1:-1;3167:180:1:o;4079:596::-;-1:-1:-1;;;;;4402:15:1;;;4384:34;;4454:15;;;;4449:2;4434:18;;4427:43;4501:2;4486:18;;4479:34;;;;4549:3;4544:2;4529:18;;4522:31;;;4373:1;4569:19;;;4562:30;-1:-1:-1;;;4364:3:1;4608:19;;4601:32;4665:3;4650:19;;4079:596::o;5823:632::-;5994:2;6046:21;;;6116:13;;6019:18;;;6138:22;;;5965:4;;5994:2;6217:15;;;;6191:2;6176:18;;;5965:4;6260:169;6274:6;6271:1;6268:13;6260:169;;;6335:13;;6323:26;;6404:15;;;;6369:12;;;;6296:1;6289:9;6260:169;;;-1:-1:-1;6446:3:1;;5823:632;-1:-1:-1;;;;;;5823:632:1:o;8825:356::-;9027:2;9009:21;;;9046:18;;;9039:30;9105:34;9100:2;9085:18;;9078:62;9172:2;9157:18;;8825:356::o;12048:128::-;12088:3;12119:1;12115:6;12112:1;12109:13;12106:39;;;12125:18;;:::i;:::-;-1:-1:-1;12161:9:1;;12048:128::o;12181:217::-;12221:1;12247;12237:132;;12291:10;12286:3;12282:20;12279:1;12272:31;12326:4;12323:1;12316:15;12354:4;12351:1;12344:15;12237:132;-1:-1:-1;12383:9:1;;12181:217::o;12403:168::-;12443:7;12509:1;12505;12501:6;12497:14;12494:1;12491:21;12486:1;12479:9;12472:17;12468:45;12465:71;;;12516:18;;:::i;:::-;-1:-1:-1;12556:9:1;;12403:168::o;12576:125::-;12616:4;12644:1;12641;12638:8;12635:34;;;12649:18;;:::i;:::-;-1:-1:-1;12686:9:1;;12576:125::o;12706:135::-;12745:3;-1:-1:-1;;12766:17:1;;12763:43;;;12786:18;;:::i;:::-;-1:-1:-1;12833:1:1;12822:13;;12706:135::o;12846:127::-;12907:10;12902:3;12898:20;12895:1;12888:31;12938:4;12935:1;12928:15;12962:4;12959:1;12952:15;12978:127;13039:10;13034:3;13030:20;13027:1;13020:31;13070:4;13067:1;13060:15;13094:4;13091:1;13084:15;13110:127;13171:10;13166:3;13162:20;13159:1;13152:31;13202:4;13199:1;13192:15;13226:4;13223:1;13216:15;13242:127;13303:10;13298:3;13294:20;13291:1;13284:31;13334:4;13331:1;13324:15;13358:4;13355:1;13348:15;13374:131;-1:-1:-1;;;;;13449:31:1;;13439:42;;13429:70;;13495:1;13492;13485:12"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1326600",
"executionCost": "119905",
"totalCost": "1446505"
},
"external": {
"batchStakeNFT(uint256[])": "infinite",
"batchUnstakeNFT(uint256[])": "infinite",
"batchUnstakeWithoutRewardNFT(uint256[])": "infinite",
"bearNFT()": "2403",
"bears(uint256)": "4619",
"claimBatchReward(uint256[])": "infinite",
"claimReward(uint256)": "infinite",
"getClaimableToken(address)": "infinite",
"getStakedBear(address)": "infinite",
"getTotalStakedBears()": "2327",
"honey()": "2449",
"onERC721Received(address,address,uint256,bytes)": "infinite",
"owner()": "2442",
"renounceOwnership()": "28137",
"stakeNFT(uint256)": "infinite",
"stakedBear(uint256)": "9056",
"supportsInterface(bytes4)": "370",
"transferOwnership(address)": "infinite",
"unstakeNFT(uint256)": "infinite",
"unstakeWithoutRewardNFT(uint256)": "infinite",
"withdraw()": "infinite",
"withdrawToken(uint256)": "infinite"
},
"internal": {
"_stakeNFT(uint256)": "infinite",
"_unstakeNFT(uint256)": "infinite",
"calculateReward(uint256,uint256)": "infinite"
}
},
"methodIdentifiers": {
"batchStakeNFT(uint256[])": "6954f3e5",
"batchUnstakeNFT(uint256[])": "862bc2c5",
"batchUnstakeWithoutRewardNFT(uint256[])": "6e75f5c7",
"bearNFT()": "bacccabe",
"bears(uint256)": "b4231563",
"claimBatchReward(uint256[])": "21205fed",
"claimReward(uint256)": "ae169a50",
"getClaimableToken(address)": "80c48c0b",
"getStakedBear(address)": "74e74760",
"getTotalStakedBears()": "0c313ef7",
"honey()": "36b2c4b2",
"onERC721Received(address,address,uint256,bytes)": "150b7a02",
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"stakeNFT(uint256)": "6eb604e0",
"stakedBear(uint256)": "bc1a73d6",
"supportsInterface(bytes4)": "01ffc9a7",
"transferOwnership(address)": "f2fde38b",
"unstakeNFT(uint256)": "c1dfa0bb",
"unstakeWithoutRewardNFT(uint256)": "5eeec224",
"withdraw()": "3ccfd60b",
"withdrawToken(uint256)": "50baa622"
}
},
"abi": [
{
"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": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "RewardClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "staker",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakedTime",
"type": "uint256"
}
],
"name": "Staked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "unstakedTime",
"type": "uint256"
}
],
"name": "UnStaked",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "batchStakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "batchUnstakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "batchUnstakeWithoutRewardNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "bearNFT",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "bears",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "claimBatchReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "claimReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
}
],
"name": "getClaimableToken",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
}
],
"name": "getStakedBear",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalStakedBears",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "honey",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "stakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakedBear",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "lastClaimed",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isStaked",
"type": "bool"
},
{
"internalType": "bool",
"name": "isEmergencyOut",
"type": "bool"
},
{
"internalType": "uint256",
"name": "emergencyOutTime",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceID",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "unstakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "unstakeWithoutRewardNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdrawToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "RewardClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "staker",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakedTime",
"type": "uint256"
}
],
"name": "Staked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "unstakedTime",
"type": "uint256"
}
],
"name": "UnStaked",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "batchStakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "batchUnstakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "batchUnstakeWithoutRewardNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "bearNFT",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "bears",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_tokenIds",
"type": "uint256[]"
}
],
"name": "claimBatchReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "claimReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
}
],
"name": "getClaimableToken",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
}
],
"name": "getStakedBear",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalStakedBears",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "honey",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "stakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakedBear",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "lastClaimed",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isStaked",
"type": "bool"
},
{
"internalType": "bool",
"name": "isEmergencyOut",
"type": "bool"
},
{
"internalType": "uint256",
"name": "emergencyOutTime",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceID",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "unstakeNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "unstakeWithoutRewardNFT",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdrawToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "BearStaking"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "Context"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"supportsInterface(bytes4)": "01ffc9a7"
}
},
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.",
"kind": "dev",
"methods": {
"supportsInterface(bytes4)": {
"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "IERC165"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Interface of the ERC20 standard as defined in the EIP.",
"events": {
"Approval(address,address,uint256)": {
"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
},
"Transfer(address,address,uint256)": {
"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
}
},
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
},
"approve(address,uint256)": {
"details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
},
"balanceOf(address)": {
"details": "Returns the amount of tokens owned by `account`."
},
"totalSupply()": {
"details": "Returns the amount of tokens in existence."
},
"transfer(address,uint256)": {
"details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
},
"transferFrom(address,address,uint256)": {
"details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "IERC20"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"getApproved(uint256)": "081812fc",
"isApprovedForAll(address,address)": "e985e9c5",
"ownerOf(uint256)": "6352211e",
"safeTransferFrom(address,address,uint256)": "42842e0e",
"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
"setApprovalForAll(address,bool)": "a22cb465",
"supportsInterface(bytes4)": "01ffc9a7",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "_approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "_approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Required interface of an ERC721 compliant contract.",
"events": {
"Approval(address,address,uint256)": {
"details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
},
"ApprovalForAll(address,address,bool)": {
"details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
},
"Transfer(address,address,uint256)": {
"details": "Emitted when `tokenId` token is transferred from `from` to `to`."
}
},
"kind": "dev",
"methods": {
"approve(address,uint256)": {
"details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."
},
"balanceOf(address)": {
"details": "Returns the number of tokens in ``owner``'s account."
},
"getApproved(uint256)": {
"details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."
},
"isApprovedForAll(address,address)": {
"details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"
},
"ownerOf(uint256)": {
"details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."
},
"safeTransferFrom(address,address,uint256)": {
"details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."
},
"safeTransferFrom(address,address,uint256,bytes)": {
"details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."
},
"setApprovalForAll(address,bool)": {
"details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."
},
"supportsInterface(bytes4)": {
"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
},
"transferFrom(address,address,uint256)": {
"details": "Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "IERC721"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"onERC721Received(address,address,uint256,bytes)": "150b7a02"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.",
"kind": "dev",
"methods": {
"onERC721Received(address,address,uint256,bytes)": {
"details": "Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`."
}
},
"title": "ERC721 token receiver interface",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "IERC721Receiver"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"transferOwnership(address)": "f2fde38b"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
"kind": "dev",
"methods": {
"constructor": {
"details": "Initializes the contract setting the deployer as the initial owner."
},
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "Ownable"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f326f691f77f6db0c7898058b7fb212f9005517a144c2492eb2d2c0e745d793a64736f6c63430008070033",
"opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0x26 0xF6 SWAP2 0xF7 PUSH32 0x6DB0C7898058B7FB212F9005517A144C2492EB2D2C0E745D793A64736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "13428:6512:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;13428:6512:0;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f326f691f77f6db0c7898058b7fb212f9005517a144c2492eb2d2c0e745d793a64736f6c63430008070033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0x26 0xF6 SWAP2 0xF7 PUSH32 0x6DB0C7898058B7FB212F9005517A144C2492EB2D2C0E745D793A64736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "13428:6512:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "103",
"totalCost": "17303"
},
"internal": {
"add(uint256,uint256)": "infinite",
"div(uint256,uint256)": "infinite",
"div(uint256,uint256,string memory)": "infinite",
"mod(uint256,uint256)": "infinite",
"mod(uint256,uint256,string memory)": "infinite",
"mul(uint256,uint256)": "infinite",
"sub(uint256,uint256)": "infinite",
"sub(uint256,uint256,string memory)": "infinite",
"tryAdd(uint256,uint256)": "infinite",
"tryDiv(uint256,uint256)": "infinite",
"tryMod(uint256,uint256)": "infinite",
"tryMul(uint256,uint256)": "infinite",
"trySub(uint256,uint256)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Wrappers over Solidity's arithmetic operations. NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler now has built in overflow checking.",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/BearStaking.sol": "SafeMath"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BearStaking.sol": {
"keccak256": "0x401f7b812bdf58ca703ba26a5b01ee648709d75c80c84153dae1adf47029fc19",
"license": "MIT",
"urls": [
"bzz-raw://994515fbbf2507d0f2f5105ac014b360fb5a65a93d2fb96df79beb82a9282ea7",
"dweb:/ipfs/QmcyYcxifLVEkW6DCbpCP9DHP9gDHE8ETVdiW6QZ599AXY"
]
}
},
"version": 1
}
/**
*Submitted for verification at Etherscan.io on 2022-01-12
*/
/**
*Submitted for verification at Etherscan.io on 2022-01-12
*/
/**
*Submitted for verification at Etherscan.io on 2022-01-12
*/
/**
*Submitted for verification at Etherscan.io on 2022-01-12
*/
/**
*Submitted for verification at Etherscan.io on 2022-01-11
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol)
/**
* @dev Required interface of an ERC721 compliant contract.
*/
interface IERC721 is IERC165 {
/**
* @dev Emitted when `tokenId` token is transferred from `from` to `to`.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
*/
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
*/
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
/**
* @dev Returns the number of tokens in ``owner``'s account.
*/
function balanceOf(address owner) external view returns (uint256 balance);
/**
* @dev Returns the owner of the `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function ownerOf(uint256 tokenId) external view returns (address owner);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
* are aware of the ERC721 protocol to prevent tokens from being forever locked.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Transfers `tokenId` token from `from` to `to`.
*
* WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Gives permission to `to` to transfer `tokenId` token to another account.
* The approval is cleared when the token is transferred.
*
* Only a single account can be approved at a time, so approving the zero address clears previous approvals.
*
* Requirements:
*
* - The caller must own the token or be an approved operator.
* - `tokenId` must exist.
*
* Emits an {Approval} event.
*/
function approve(address to, uint256 tokenId) external;
/**
* @dev Returns the account approved for `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function getApproved(uint256 tokenId) external view returns (address operator);
/**
* @dev Approve or remove `operator` as an operator for the caller.
* Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
*
* Requirements:
*
* - The `operator` cannot be the caller.
*
* Emits an {ApprovalForAll} event.
*/
function setApprovalForAll(address operator, bool _approved) external;
/**
* @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
*
* See {setApprovalForAll}
*/
function isApprovedForAll(address owner, address operator) external view returns (bool);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes calldata data
) external;
}
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// OpenZeppelin Contracts v4.4.1 (access/Ownable.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.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_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 {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_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);
}
}
// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol)
/**
* @title ERC721 token receiver interface
* @dev Interface for any contract that wants to support safeTransfers
* from ERC721 asset contracts.
*/
interface IERC721Receiver {
/**
* @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
* by `operator` from `from`, this function is called.
*
* It must return its Solidity selector to confirm the token transfer.
* If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
*
* The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.
*/
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
// OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol)
// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
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) {
unchecked {
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) {
unchecked {
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) {
unchecked {
// 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) {
unchecked {
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) {
unchecked {
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) {
return a + b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return 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) {
return a * b;
}
/**
* @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.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
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) {
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) {
unchecked {
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.
*
* 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) {
unchecked {
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) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
contract BearStaking is Ownable, IERC721Receiver{
using SafeMath for uint256;
bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;
//StakedBear Struct
struct StakedBear{
address owner;
uint256 lastClaimed;
bool isStaked;
bool isEmergencyOut;
uint256 emergencyOutTime;
}
//event
event RewardClaimed(uint256 tokenID, address owner);
event Staked(address staker, uint256 tokenID, uint256 stakedTime);
event UnStaked(uint256 tokenID, uint256 unstakedTime);
// token_id => StakedBear
mapping(uint256 => StakedBear) public stakedBear;
uint256[] public bears;
//NFT address
address public bearNFT = 0x0Bf6DdcFEE517cCB2E107Ab0CF00b224A964AF63;
//ERC20 address
address public honey = 0x136BD5c88F586988BeA55e29d9649e98da512AdC;
//reward discription
uint256 rate = 10 * 10**18;
//reward interval
uint256 rewardPeroid = 1 days;
// reward = delta * rate / peroid
function calculateReward(uint256 _lastClaimed, uint256 _rewardEndTime) view internal returns(uint256){
return _rewardEndTime.sub(_lastClaimed).mul(rate).div(rewardPeroid);
}
function batchStakeNFT(uint256[] memory _tokenIds) external {
for(uint256 i=0;i<_tokenIds.length;i++){
stakeNFT(_tokenIds[i]);
}
}
function stakeNFT(uint256 _tokenId) public {
require(!stakedBear[_tokenId].isStaked, "Staking: NFT already on staked!");
require(IERC721(bearNFT).ownerOf(_tokenId)==msg.sender, "Staking: Not the NFT owner!");
require(
address(this) == IERC721(bearNFT).getApproved(_tokenId) || IERC721(bearNFT).isApprovedForAll(msg.sender, address(this)),
"Staking: NFT not approved for the staking address OR Staking not set as operator!"
);
IERC721(bearNFT).safeTransferFrom(msg.sender, address(this), _tokenId, " ");
_stakeNFT(_tokenId);
}
function batchUnstakeNFT(uint256[] memory _tokenIds) external {
for(uint256 i=0;i<_tokenIds.length;i++){
unstakeNFT(_tokenIds[i]);
}
}
function unstakeNFT(uint256 _tokenId) public {
require(stakedBear[_tokenId].isStaked, "Staking: NFT not on staked!");
IERC721(bearNFT).safeTransferFrom(address(this), msg.sender, _tokenId, " ");
claimReward(_tokenId);
_unstakeNFT(_tokenId);
}
function batchUnstakeWithoutRewardNFT(uint256[] memory _tokenIds) external{
for(uint256 i=0;i<_tokenIds.length; i++){
unstakeWithoutRewardNFT(_tokenIds[i]);
}
}
function unstakeWithoutRewardNFT(uint256 _tokenId) public {
stakedBear[_tokenId].emergencyOutTime = block.timestamp;
stakedBear[_tokenId].isEmergencyOut = true;
require(stakedBear[_tokenId].isStaked, "Staking: NFT not on staked!");
IERC721(bearNFT).safeTransferFrom(address(this), msg.sender, _tokenId, " ");
_unstakeNFT(_tokenId);
}
function _stakeNFT(uint256 _tokenId) internal{
StakedBear storage bear = stakedBear[_tokenId];
require(!bear.isStaked, "Staking: NFT already in staking!");
bear.isStaked = true;
bear.owner = msg.sender;
bear.lastClaimed = block.timestamp;
bear.isEmergencyOut = false;
//add bear
bears.push(_tokenId);
emit Staked(msg.sender, _tokenId, block.timestamp);
}
function _unstakeNFT(uint256 _tokenId) internal {
StakedBear storage bear = stakedBear[_tokenId];
require(bear.isStaked, "Staking: NFT not staked!");
require(bear.owner == msg.sender, "Staking: Not the owner of NFT!");
bear.isStaked = false;
emit UnStaked(_tokenId, block.timestamp);
//remove from bears.
for(uint256 i=0; i<bears.length; i++){
if(bears[i] == _tokenId){
bears[i] = bears[bears.length-1];
bears.pop();
return;
}
}
}
function claimReward(uint256 _tokenId) public {
StakedBear storage bear = stakedBear[_tokenId];
require(bear.owner != address(0), "Staking: Bear not in staking!");
require(bear.owner == msg.sender, "Staking: Not the owner of NFT!");
uint256 reward = 0;
if(bear.isEmergencyOut){
require(bear.emergencyOutTime > bear.lastClaimed, "Staking: Already Claimed Reward!");
reward = calculateReward(bear.lastClaimed, bear.emergencyOutTime);
}else{
require(bear.isStaked, "Staking: Not in staking!");
reward = calculateReward(bear.lastClaimed, block.timestamp);
}
bear.lastClaimed = block.timestamp;
//transfer honey
IERC20(honey).transfer(msg.sender, reward);
emit RewardClaimed(_tokenId, msg.sender);
}
function claimBatchReward(uint256[] memory _tokenIds) external{
for(uint i=0; i<_tokenIds.length; i++){
claimReward(_tokenIds[i]);
}
}
function getStakedBear(address wallet) public view returns(uint256[] memory){
uint256[] memory stakedBears = new uint256[](bears.length);
uint256 count=0;
for(uint256 i=0; i<bears.length; i++){
StakedBear memory _bear = stakedBear[bears[i]];
if(_bear.owner==wallet && _bear.isStaked){
stakedBears[count] = bears[i];
count++;
}
}
uint256[] memory userStakedBears = new uint256[](count);
for(uint256 i=0; i<count; i++){
userStakedBears[i] = stakedBears[i];
}
return userStakedBears;
}
function getClaimableToken(address wallet) external view returns(uint256){
uint256[] memory stakedBears = getStakedBear(wallet);
uint256 reward = 0;
for(uint256 i=0; i<stakedBears.length; i++){
if(stakedBear[stakedBears[i]].isEmergencyOut)
reward += calculateReward(stakedBear[stakedBears[i]].lastClaimed, stakedBear[stakedBears[i]].emergencyOutTime);
else
reward += calculateReward(stakedBear[stakedBears[i]].lastClaimed, block.timestamp);
}
return reward;
}
function getTotalStakedBears() external view returns(uint256){
return bears.length;
}
//----------- Rescue Ether and tokens ------------//
function withdraw() external payable onlyOwner {
(bool os, ) = payable(owner()).call{value: address(this).balance}("");
require(os);
}
function withdrawToken(uint256 amount) external onlyOwner{
IERC20(honey).transfer(msg.sender, amount);
}
//------ Callbacks -------------------//
/*
Handle the ERC721 recieve.
*/
function onERC721Received(
address,
address,
uint256,
bytes calldata data
)
public override returns(bytes4)
{
return _ERC721_RECEIVED;
}
//ERC721 support
function supportsInterface(bytes4 interfaceID) external returns (bool){
return interfaceID == _ERC721_RECEIVED ;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment