Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save smit-1923/2bfa4e7503f886abf4442ba3dfd0a02e to your computer and use it in GitHub Desktop.
Save smit-1923/2bfa4e7503f886abf4442ba3dfd0a02e to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.6.0+commit.26b70077.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 <0.9.0;
library console {
address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);
function _sendLogPayload(bytes memory payload) private view {
uint256 payloadLength = payload.length;
address consoleAddress = CONSOLE_ADDRESS;
assembly {
let payloadStart := add(payload, 32)
let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
}
}
function log() internal view {
_sendLogPayload(abi.encodeWithSignature("log()"));
}
function logInt(int p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(int)", p0));
}
function logUint(uint p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
}
function logString(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function logBool(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function logAddress(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function logBytes(bytes memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
}
function logBytes1(bytes1 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
}
function logBytes2(bytes2 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
}
function logBytes3(bytes3 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
}
function logBytes4(bytes4 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
}
function logBytes5(bytes5 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
}
function logBytes6(bytes6 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
}
function logBytes7(bytes7 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
}
function logBytes8(bytes8 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
}
function logBytes9(bytes9 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
}
function logBytes10(bytes10 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
}
function logBytes11(bytes11 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
}
function logBytes12(bytes12 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
}
function logBytes13(bytes13 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
}
function logBytes14(bytes14 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
}
function logBytes15(bytes15 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
}
function logBytes16(bytes16 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
}
function logBytes17(bytes17 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
}
function logBytes18(bytes18 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
}
function logBytes19(bytes19 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
}
function logBytes20(bytes20 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
}
function logBytes21(bytes21 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
}
function logBytes22(bytes22 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
}
function logBytes23(bytes23 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
}
function logBytes24(bytes24 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
}
function logBytes25(bytes25 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
}
function logBytes26(bytes26 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
}
function logBytes27(bytes27 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
}
function logBytes28(bytes28 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
}
function logBytes29(bytes29 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
}
function logBytes30(bytes30 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
}
function logBytes31(bytes31 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
}
function logBytes32(bytes32 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
}
function log(uint p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
}
function log(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function log(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function log(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function log(uint p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
}
function log(uint p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
}
function log(uint p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
}
function log(uint p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
}
function log(string memory p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1));
}
function log(string memory p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
}
function log(string memory p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
}
function log(string memory p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
}
function log(bool p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1));
}
function log(bool p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
}
function log(bool p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
}
function log(bool p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
}
function log(address p0, uint p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1));
}
function log(address p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
}
function log(address p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
}
function log(address p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
}
function log(uint p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
}
function log(uint p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
}
function log(uint p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
}
function log(uint p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
}
function log(uint p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
}
function log(uint p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
}
function log(uint p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
}
function log(uint p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
}
function log(uint p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
}
function log(uint p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
}
function log(uint p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
}
function log(uint p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
}
function log(uint p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
}
function log(uint p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
}
function log(uint p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
}
function log(uint p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
}
function log(string memory p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
}
function log(string memory p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
}
function log(string memory p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
}
function log(string memory p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
}
function log(string memory p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2));
}
function log(string memory p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
}
function log(string memory p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
}
function log(string memory p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
}
function log(string memory p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2));
}
function log(string memory p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
}
function log(string memory p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
}
function log(string memory p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
}
function log(string memory p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2));
}
function log(string memory p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
}
function log(string memory p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
}
function log(string memory p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
}
function log(bool p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
}
function log(bool p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
}
function log(bool p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
}
function log(bool p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
}
function log(bool p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2));
}
function log(bool p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
}
function log(bool p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
}
function log(bool p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
}
function log(bool p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2));
}
function log(bool p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
}
function log(bool p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
}
function log(bool p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
}
function log(bool p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2));
}
function log(bool p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
}
function log(bool p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
}
function log(bool p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
}
function log(address p0, uint p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
}
function log(address p0, uint p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
}
function log(address p0, uint p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
}
function log(address p0, uint p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
}
function log(address p0, string memory p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2));
}
function log(address p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
}
function log(address p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
}
function log(address p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
}
function log(address p0, bool p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2));
}
function log(address p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
}
function log(address p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
}
function log(address p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
}
function log(address p0, address p1, uint p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2));
}
function log(address p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
}
function log(address p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
}
function log(address p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
}
function log(uint p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
}
function log(uint p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
}
function log(address p0, uint p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, uint p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
}
}
REMIX DEFAULT WORKSPACE
Remix default workspace is present when:
i. Remix loads for the very first time
ii. A new workspace is created
iii. There are no files existing in the File Explorer
This workspace contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one Solidity test file for 'Ballot' contract & one JS test file for 'Storage' contract
SCRIPTS
The 'scripts' folder contains two example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Also, there is a script containing some unit tests for Storage contract inside tests directory.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
Please note, 'require' statement is supported in a limited manner for Remix supported modules.
For now, modules supported by Remix are ethers, web3, swarmgw, chai, remix and hardhat only for hardhat.ethers object/plugin.
For unsupported modules, an error like this will be thrown: '<module_name> module require is not supported by Remix IDE will be shown.'
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610b3c806100206000396000f3fe60806040526004361061003f5760003560e01c80630c53c51c146100445780632d0335ab146101b9578063564b81ef1461021e5780636281133d14610249575b600080fd5b61013e600480360360a081101561005a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561009757600080fd5b8201836020820111156100a957600080fd5b803590602001918460018302840111640100000000831117156100cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff16906020019092919050505061037e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017e578082015181840152602081019050610163565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c557600080fd5b50610208600480360360208110156101dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079e565b6040518082815260200191505060405180910390f35b34801561022a57600080fd5b506102336107e6565b6040518082815260200191505060405180910390f35b34801561025557600080fd5b50610364600480360360e081101561026c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156102bd57600080fd5b8201836020820111156102cf57600080fd5b803590602001918460018302840111640100000000831117156102f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff1690602001909291905050506107f3565b604051808215151515815260200191505060405180910390f35b60606103d4866000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cb6107e6565b888888886107f3565b610429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610ae66021913960400191505060405180910390fd5b61047b60016000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a0590919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060603073ffffffffffffffffffffffffffffffffffffffff1687896040516020018083805190602001908083835b6020831061051057805182526020820191506020810190506020830392506104ed565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b602083106105ad578051825260208201915060208101905060208303925061058a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461060f576040519150601f19603f3d011682016040523d82523d6000602084013e610614565b606091505b50915091508161068c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000081525060200191505060405180910390fd5b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b883389604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610754578082015181840152602081019050610739565b50505050905090810190601f1680156107815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1809250505095945050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b6000806108b788308989604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183815260200182805190602001908083835b602083106108745780518252602082019150602081019050602083039250610851565b6001836020036101000a03801982511681845116808217855250505050505090500194505050505060405160208183030381529060405280519060200120610a8d565b9050600060018285888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610918573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b600080828401905083811015610a83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182815260200191505060405160208183030381529060405280519060200120905091905056fe5369676e657220616e64207369676e617475726520646f206e6f74206d61746368a26469706673582212200bb2d0586d55540fc8fe657ce97a8d157bf050d29f5d87baba739e46c327945764736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC53C51C EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x564B81EF EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x6281133D EQ PUSH2 0x249 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x37E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x163 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1AB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x79E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x7E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x364 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH2 0x3D4 DUP7 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3CB PUSH2 0x7E6 JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 PUSH2 0x7F3 JUMP JUMPDEST PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xAE6 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x47B PUSH1 0x1 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xA05 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x60 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x510 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x5AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x58A JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x60F 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 0x614 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x68C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B DUP9 CALLER DUP10 PUSH1 0x40 MLOAD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x754 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x739 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x781 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 SWAP3 POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B7 DUP9 ADDRESS DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x874 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x851 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xA8D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP6 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x918 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x496E76616C6964207369676E6174757265000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP3 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xA83 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID MSTORE8 PUSH10 0x676E657220616E642073 PUSH10 0x676E617475726520646F KECCAK256 PUSH15 0x6F74206D61746368A2646970667358 0x22 SLT KECCAK256 SIGNEXTEND 0xB2 0xD0 PC PUSH14 0x55540FC8FE657CE97A8D157BF050 0xD2 SWAP16 0x5D DUP8 0xBA 0xBA PUSH20 0x9E46C327945764736F6C63430006000033000000 ",
"sourceMap": "200:3113:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;200:3113:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c80630c53c51c146100445780632d0335ab146101b9578063564b81ef1461021e5780636281133d14610249575b600080fd5b61013e600480360360a081101561005a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561009757600080fd5b8201836020820111156100a957600080fd5b803590602001918460018302840111640100000000831117156100cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff16906020019092919050505061037e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017e578082015181840152602081019050610163565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c557600080fd5b50610208600480360360208110156101dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079e565b6040518082815260200191505060405180910390f35b34801561022a57600080fd5b506102336107e6565b6040518082815260200191505060405180910390f35b34801561025557600080fd5b50610364600480360360e081101561026c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156102bd57600080fd5b8201836020820111156102cf57600080fd5b803590602001918460018302840111640100000000831117156102f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff1690602001909291905050506107f3565b604051808215151515815260200191505060405180910390f35b60606103d4866000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cb6107e6565b888888886107f3565b610429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610ae66021913960400191505060405180910390fd5b61047b60016000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a0590919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060603073ffffffffffffffffffffffffffffffffffffffff1687896040516020018083805190602001908083835b6020831061051057805182526020820191506020810190506020830392506104ed565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b602083106105ad578051825260208201915060208101905060208303925061058a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461060f576040519150601f19603f3d011682016040523d82523d6000602084013e610614565b606091505b50915091508161068c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000081525060200191505060405180910390fd5b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b883389604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610754578082015181840152602081019050610739565b50505050905090810190601f1680156107815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1809250505095945050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b6000806108b788308989604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183815260200182805190602001908083835b602083106108745780518252602082019150602081019050602083039250610851565b6001836020036101000a03801982511681845116808217855250505050505090500194505050505060405160208183030381529060405280519060200120610a8d565b9050600060018285888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610918573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b600080828401905083811015610a83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182815260200191505060405160208183030381529060405280519060200120905091905056fe5369676e657220616e64207369676e617475726520646f206e6f74206d61746368a26469706673582212200bb2d0586d55540fc8fe657ce97a8d157bf050d29f5d87baba739e46c327945764736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC53C51C EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x564B81EF EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x6281133D EQ PUSH2 0x249 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x37E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x163 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1AB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x79E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x7E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x364 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH2 0x3D4 DUP7 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3CB PUSH2 0x7E6 JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 PUSH2 0x7F3 JUMP JUMPDEST PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xAE6 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x47B PUSH1 0x1 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xA05 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x60 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x510 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x5AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x58A JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x60F 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 0x614 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x68C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B DUP9 CALLER DUP10 PUSH1 0x40 MLOAD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x754 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x739 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x781 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 SWAP3 POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B7 DUP9 ADDRESS DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x874 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x851 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xA8D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP6 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x918 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x496E76616C6964207369676E6174757265000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP3 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xA83 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID MSTORE8 PUSH10 0x676E657220616E642073 PUSH10 0x676E617475726520646F KECCAK256 PUSH15 0x6F74206D61746368A2646970667358 0x22 SLT KECCAK256 SIGNEXTEND 0xB2 0xD0 PC PUSH14 0x55540FC8FE657CE97A8D157BF050 0xD2 SWAP16 0x5D DUP8 0xBA 0xBA PUSH20 0x9E46C327945764736F6C63430006000033000000 ",
"sourceMap": "200:3113:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1237:760;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1237:760:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1237:760:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1237:760:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1237:760:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1237:760:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1237:760:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2005:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2005:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2005:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;439:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;439:161:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2354:436;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2354:436:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2354:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2354:436:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2354:436:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2354:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2354:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1237:760;1394:12;1429:91;1436:11;1449:6;:19;1456:11;1449:19;;;;;;;;;;;;;;;;1470:12;:10;:12::i;:::-;1484:17;1503:4;1509;1515;1429:6;:91::i;:::-;1421:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1591:26;1615:1;1591:6;:19;1598:11;1591:19;;;;;;;;;;;;;;;;:23;;:26;;;;:::i;:::-;1569:6;:19;1576:11;1569:19;;;;;;;;;;;;;;;:48;;;;1708:12;1722:23;1757:4;1749:18;;1785:17;1804:11;1768:48;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1768:48:0;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1768:48:0;;;1749:68;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1749:68:0;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1707:110:0;;;;1838:7;1830:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1894:67;1918:11;1931:10;1943:17;1894:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1894:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1979:10;1972:17;;;;1237:760;;;;;;;:::o;2005:108::-;2059:13;2093:6;:12;2100:4;2093:12;;;;;;;;;;;;;;;;2085:20;;2005:108;;;:::o;439:161::-;482:7;502:10;553:9;547:15;;590:2;583:9;;;439:161;:::o;2354:436::-;2519:4;2538:12;2553:78;2589:5;2596:4;2602:7;2611:17;2572:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2572:57:0;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2572:57:0;;;2562:68;;;;;;2553:8;:78::i;:::-;2538:93;;2642:14;2659:33;2669:4;2675;2681;2687;2659:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2659:33:0;;;;;;;;2642:50;;2729:1;2711:20;;:6;:20;;;;2703:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2775:6;2766:15;;:5;:15;;;2758:24;;;;2354:436;;;;;;;;;:::o;867:176:1:-;925:7;944:9;960:1;956;:5;944:17;;984:1;979;:6;;971:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:1;1028:8;;;867:176;;;;:::o;2187:159:0:-;2242:7;2332:4;2279:58;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2279:58:0;;;2269:69;;;;;;2262:76;;2187:159;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "575200",
"executionCost": "606",
"totalCost": "575806"
},
"external": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": "infinite",
"getChainID()": "247",
"getNonce(address)": "1196",
"verify(address,uint256,uint256,bytes,bytes32,bytes32,uint8)": "infinite"
},
"internal": {
"msgSender()": "infinite",
"prefixed(bytes32)": "infinite"
}
},
"methodIdentifiers": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": "0c53c51c",
"getChainID()": "564b81ef",
"getNonce(address)": "2d0335ab",
"verify(address,uint256,uint256,bytes,bytes32,bytes32,uint8)": "6281133d"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address payable",
"name": "relayerAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
}
],
"name": "MetaTransactionExecuted",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "executeMetaTransaction",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getChainID",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "chainID",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "verify",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.0+commit.26b70077"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address payable",
"name": "relayerAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
}
],
"name": "MetaTransactionExecuted",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "executeMetaTransaction",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getChainID",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "chainID",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "verify",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": {
"params": {
"functionSignature": "Signature of the actual function to be called via meta transaction",
"sigR": "R part of the signature",
"sigS": "S part of the signature",
"sigV": "V part of the signature",
"userAddress": "Address of user trying to do meta transaction"
}
}
}
},
"userdoc": {
"methods": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": {
"notice": "Main function to be called when user wants to execute meta transaction. The actual function to be called should be passed as param with name functionSignature Here the basic signature recovery is being used. Signature is expected to be generated using personal_sign method."
}
}
}
},
"settings": {
"compilationTarget": {
"contracts/BasicMetaTransaction.sol": "BasicMetaTransaction"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BasicMetaTransaction.sol": {
"keccak256": "0xb7c29b1bdae14c685af5b0a42afd99a1696d47e198d1fb6c96d0bb3373d9b02d",
"urls": [
"bzz-raw://90266df0c07f59ffd3b28c2c442127bac1f5dae12b403c9dabadbbe920250bad",
"dweb:/ipfs/QmUmco744fC1LHuUxFgyNSxQaCDZhEiq4qRkXvWakuGyfA"
]
},
"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.0.0/contracts/math/SafeMath.sol": {
"keccak256": "0xaa0e11a791bc975d581a4f5b7a8d9c16a880a354c89312318ae072ae3e740409",
"urls": [
"bzz-raw://982d8b344f76193834260436d74c81e5a8f9e89106bb4cd72bbaabda4f3f59c2",
"dweb:/ipfs/QmSrvP5TkQRhKDVCTpsV3uaKLBhkt7PjUY89vdtM9o5ybK"
]
}
},
"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": {
"@_49": {
"entryPoint": null,
"id": 49,
"parameterSlots": 0,
"returnSlots": 0
},
"@_sendLogPayload_101": {
"entryPoint": 444,
"id": 101,
"parameterSlots": 1,
"returnSlots": 0
},
"@log_836": {
"entryPoint": 282,
"id": 836,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 688,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 581,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 703,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 485,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 496,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 670,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 638,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 513,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 564,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1862:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "66:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "77:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "93:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "87:5:2"
},
"nodeType": "YulFunctionCall",
"src": "87:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "77:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "49:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "59:6:2",
"type": ""
}
],
"src": "7:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "208:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "225:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "230:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "218:6:2"
},
"nodeType": "YulFunctionCall",
"src": "218:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "218:19:2"
},
{
"nodeType": "YulAssignment",
"src": "246:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "265:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "270:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "261:3:2"
},
"nodeType": "YulFunctionCall",
"src": "261:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "246:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "180:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "185:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "196:11:2",
"type": ""
}
],
"src": "112:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "336:258:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "346:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "355:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "350:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "415:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "440:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "445:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "436:3:2"
},
"nodeType": "YulFunctionCall",
"src": "436:11:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "459:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "464:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "455:3:2"
},
"nodeType": "YulFunctionCall",
"src": "455:11:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "449:5:2"
},
"nodeType": "YulFunctionCall",
"src": "449:18:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "429:6:2"
},
"nodeType": "YulFunctionCall",
"src": "429:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "429:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "376:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "379:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "373:2:2"
},
"nodeType": "YulFunctionCall",
"src": "373:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "387:19:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:15:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "398:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "394:3:2"
},
"nodeType": "YulFunctionCall",
"src": "394:10:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "389:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "369:3:2",
"statements": []
},
"src": "365:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "512:76:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "562:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "567:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "558:3:2"
},
"nodeType": "YulFunctionCall",
"src": "558:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "551:6:2"
},
"nodeType": "YulFunctionCall",
"src": "551:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "551:27:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "493:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "496:6:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "490:2:2"
},
"nodeType": "YulFunctionCall",
"src": "490:13:2"
},
"nodeType": "YulIf",
"src": "487:101:2"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "318:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "323:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "328:6:2",
"type": ""
}
],
"src": "287:307:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "648:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "658:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "676:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "683:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "672:3:2"
},
"nodeType": "YulFunctionCall",
"src": "672:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "692:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "688:3:2"
},
"nodeType": "YulFunctionCall",
"src": "688:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "668:3:2"
},
"nodeType": "YulFunctionCall",
"src": "668:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "658:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "631:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "641:6:2",
"type": ""
}
],
"src": "600:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "800:272:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "810:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "857:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "824:32:2"
},
"nodeType": "YulFunctionCall",
"src": "824:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "814:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "872:78:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "938:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "943:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "879:58:2"
},
"nodeType": "YulFunctionCall",
"src": "879:71:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "872:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "985:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "992:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "981:3:2"
},
"nodeType": "YulFunctionCall",
"src": "981:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "999:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1004:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "959:21:2"
},
"nodeType": "YulFunctionCall",
"src": "959:52:2"
},
"nodeType": "YulExpressionStatement",
"src": "959:52:2"
},
{
"nodeType": "YulAssignment",
"src": "1020:46:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1031:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1058:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1036:21:2"
},
"nodeType": "YulFunctionCall",
"src": "1036:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1027:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1027:39:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1020:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "781:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "788:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "796:3:2",
"type": ""
}
],
"src": "708:364:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1123:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1133:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1148:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1155:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1144:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1144:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1133:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1105:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1115:7:2",
"type": ""
}
],
"src": "1078:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1255:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1265:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1294:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1276:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1276:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1265:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1237:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1247:7:2",
"type": ""
}
],
"src": "1210:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1377:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1394:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1417:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1399:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1399:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1387:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1387:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "1387:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1365:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1372:3:2",
"type": ""
}
],
"src": "1312:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1582:277:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1592:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1604:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1615:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1600:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1600:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1592:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1639:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1650:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1635:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1635:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1658:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1664:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1654:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1654:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1628:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1628:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "1628:47:2"
},
{
"nodeType": "YulAssignment",
"src": "1684:86:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1756:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1765:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1692:63:2"
},
"nodeType": "YulFunctionCall",
"src": "1692:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1684:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1824:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1837:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1848:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1833:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1833:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "1780:43:2"
},
"nodeType": "YulFunctionCall",
"src": "1780:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "1780:72:2"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1546:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1558:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1566:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1577:4:2",
"type": ""
}
],
"src": "1436:423:2"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061005a6040518060400160405280601b81526020017f4f776e657220636f6e7472616374206465706c6f7965642062793a00000000008152503361011a60201b6101e91760201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a36102ef565b6101b882826040516024016101309291906102bf565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506101bc60201b60201c565b5050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561021f578082015181840152602081019050610204565b8381111561022e576000848401525b50505050565b6000601f19601f8301169050919050565b6000610250826101e5565b61025a81856101f0565b935061026a818560208601610201565b61027381610234565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102a98261027e565b9050919050565b6102b98161029e565b82525050565b600060408201905081810360008301526102d98185610245565b90506102e860208301846102b0565b9392505050565b6104d3806102fe6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b60405161005091906102ef565b60405180910390f35b610073600480360381019061006e919061033b565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610123906103c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61028182826040516024016101ff92919061046d565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610285565b5050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102d9826102ae565b9050919050565b6102e9816102ce565b82525050565b600060208201905061030460008301846102e0565b92915050565b600080fd5b610318816102ce565b811461032357600080fd5b50565b6000813590506103358161030f565b92915050565b6000602082840312156103515761035061030a565b5b600061035f84828501610326565b91505092915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b60006103af601383610368565b91506103ba82610379565b602082019050919050565b600060208201905081810360008301526103de816103a2565b9050919050565b600081519050919050565b60005b8381101561040e5780820151818401526020810190506103f3565b8381111561041d576000848401525b50505050565b6000601f19601f8301169050919050565b600061043f826103e5565b6104498185610368565b93506104598185602086016103f0565b61046281610423565b840191505092915050565b600060408201905081810360008301526104878185610434565b905061049660208301846102e0565b939250505056fea2646970667358221220e6da7ac5277dfc1502d5e2448400f616ad752402247f2d0b6911a5b31128202064736f6c634300080e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4F776E657220636F6E7472616374206465706C6F7965642062793A0000000000 DUP2 MSTORE POP CALLER PUSH2 0x11A PUSH1 0x20 SHL PUSH2 0x1E9 OR PUSH1 0x20 SHR JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x2EF JUMP JUMPDEST PUSH2 0x1B8 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x130 SWAP3 SWAP2 SWAP1 PUSH2 0x2BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1BC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 DUP5 DUP4 DUP6 GAS STATICCALL POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x204 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x22E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x250 DUP3 PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x25A DUP2 DUP6 PUSH2 0x1F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x26A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x201 JUMP JUMPDEST PUSH2 0x273 DUP2 PUSH2 0x234 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9 DUP3 PUSH2 0x27E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B9 DUP2 PUSH2 0x29E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2D9 DUP2 DUP6 PUSH2 0x245 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2B0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x4D3 DUP1 PUSH2 0x2FE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x281 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1FF SWAP3 SWAP2 SWAP1 PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x285 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 DUP5 DUP4 DUP6 GAS STATICCALL POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D9 DUP3 PUSH2 0x2AE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E9 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x304 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x318 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP2 EQ PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x335 DUP2 PUSH2 0x30F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x351 JUMPI PUSH2 0x350 PUSH2 0x30A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35F DUP5 DUP3 DUP6 ADD PUSH2 0x326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AF PUSH1 0x13 DUP4 PUSH2 0x368 JUMP JUMPDEST SWAP2 POP PUSH2 0x3BA DUP3 PUSH2 0x379 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DE DUP2 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x40E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3F3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43F DUP3 PUSH2 0x3E5 JUMP JUMPDEST PUSH2 0x449 DUP2 DUP6 PUSH2 0x368 JUMP JUMPDEST SWAP4 POP PUSH2 0x459 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3F0 JUMP JUMPDEST PUSH2 0x462 DUP2 PUSH2 0x423 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x487 DUP2 DUP6 PUSH2 0x434 JUMP JUMPDEST SWAP1 POP PUSH2 0x496 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0xDA PUSH27 0xC5277DFC1502D5E2448400F616AD752402247F2D0B6911A5B31128 KECCAK256 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD 0xE STOP CALLER ",
"sourceMap": "152:1413:0:-:0;;;942:234;;;;;;;;;;966:54;;;;;;;;;;;;;;;;;;1009:10;966:11;;;;;:54;;:::i;:::-;1038:10;1030:5;;:18;;;;;;;;;;;;;;;;;;1163:5;;;;;;;;;;1142:27;;1159:1;1142:27;;;;;;;;;;;;152:1413;;6298:136:1;6359:71;6422:2;6426;6375:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6359:15;;;:71;;:::i;:::-;6298:136;;:::o;176:288::-;240:21;264:7;:14;240:38;;282:22;129:42;282:40;;373:2;364:7;360:16;455:1;452;437:13;423:12;407:14;400:5;389:68;335:126;;;;176:288;:::o;7:99:2:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:126::-;1115:7;1155:42;1148:5;1144:54;1133:65;;1078:126;;;:::o;1210:96::-;1247:7;1276:24;1294:5;1276:24;:::i;:::-;1265:35;;1210:96;;;:::o;1312:118::-;1399:24;1417:5;1399:24;:::i;:::-;1394:3;1387:37;1312:118;;:::o;1436:423::-;1577:4;1615:2;1604:9;1600:18;1592:26;;1664:9;1658:4;1654:20;1650:1;1639:9;1635:17;1628:47;1692:78;1765:4;1756:6;1692:78;:::i;:::-;1684:86;;1780:72;1848:2;1837:9;1833:18;1824:6;1780:72;:::i;:::-;1436:423;;;;;:::o;152:1413:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_sendLogPayload_101": {
"entryPoint": 645,
"id": 101,
"parameterSlots": 1,
"returnSlots": 0
},
"@changeOwner_67": {
"entryPoint": 158,
"id": 67,
"parameterSlots": 1,
"returnSlots": 0
},
"@getOwner_76": {
"entryPoint": 117,
"id": 76,
"parameterSlots": 0,
"returnSlots": 1
},
"@log_836": {
"entryPoint": 489,
"id": 836,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 806,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 827,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 736,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1076,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 930,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 751,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 1133,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 965,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 997,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 872,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 718,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 686,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1008,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 778,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1059,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d": {
"entryPoint": 889,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 783,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3997:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "77:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "84:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "73:3:2"
},
"nodeType": "YulFunctionCall",
"src": "73:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:2",
"type": ""
}
],
"src": "7:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "184:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "194:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "223:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "205:17:2"
},
"nodeType": "YulFunctionCall",
"src": "205:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "194:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "166:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "176:7:2",
"type": ""
}
],
"src": "139:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "323:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "346:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "328:17:2"
},
"nodeType": "YulFunctionCall",
"src": "328:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "316:6:2"
},
"nodeType": "YulFunctionCall",
"src": "316:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "316:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "294:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "301:3:2",
"type": ""
}
],
"src": "241:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "463:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "473:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "485:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "496:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "481:3:2"
},
"nodeType": "YulFunctionCall",
"src": "481:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "473:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "553:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "566:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "562:3:2"
},
"nodeType": "YulFunctionCall",
"src": "562:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "509:43:2"
},
"nodeType": "YulFunctionCall",
"src": "509:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "509:71:2"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "435:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "447:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "458:4:2",
"type": ""
}
],
"src": "365:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "633:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "643:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "659:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "653:5:2"
},
"nodeType": "YulFunctionCall",
"src": "653:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "643:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "626:6:2",
"type": ""
}
],
"src": "593:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "763:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "780:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "783:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "773:6:2"
},
"nodeType": "YulFunctionCall",
"src": "773:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "773:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "674:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "886:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "903:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "906:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "896:6:2"
},
"nodeType": "YulFunctionCall",
"src": "896:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "896:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "797:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "963:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1020:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1029:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1032:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1022:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1022:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "1022:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "986:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1011:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "993:17:2"
},
"nodeType": "YulFunctionCall",
"src": "993:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "983:2:2"
},
"nodeType": "YulFunctionCall",
"src": "983:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "976:6:2"
},
"nodeType": "YulFunctionCall",
"src": "976:43:2"
},
"nodeType": "YulIf",
"src": "973:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "956:5:2",
"type": ""
}
],
"src": "920:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1100:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1110:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1132:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1119:12:2"
},
"nodeType": "YulFunctionCall",
"src": "1119:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1110:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1175:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "1148:26:2"
},
"nodeType": "YulFunctionCall",
"src": "1148:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "1148:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1078:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1086:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1094:5:2",
"type": ""
}
],
"src": "1048:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1259:263:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1305:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1307:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1307:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1307:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1280:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1289:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1276:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1276:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1301:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1272:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1272:32:2"
},
"nodeType": "YulIf",
"src": "1269:119:2"
},
{
"nodeType": "YulBlock",
"src": "1398:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1413:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1427:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1417:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1442:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1477:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1488:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1473:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1473:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1497:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1452:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1452:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1442:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1229:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1240:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1252:6:2",
"type": ""
}
],
"src": "1193:329:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1624:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1641:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1646:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1634:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1634:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "1634:19:2"
},
{
"nodeType": "YulAssignment",
"src": "1662:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1681:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1686:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1677:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1677:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1662:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1596:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1601:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1612:11:2",
"type": ""
}
],
"src": "1528:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1809:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1831:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1839:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1827:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1827:14:2"
},
{
"hexValue": "43616c6c6572206973206e6f74206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1843:21:2",
"type": "",
"value": "Caller is not owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1820:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1820:45:2"
},
"nodeType": "YulExpressionStatement",
"src": "1820:45:2"
}
]
},
"name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1801:6:2",
"type": ""
}
],
"src": "1703:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2024:220:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2034:74:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2100:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2105:2:2",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2041:58:2"
},
"nodeType": "YulFunctionCall",
"src": "2041:67:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2034:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2206:3:2"
}
],
"functionName": {
"name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"nodeType": "YulIdentifier",
"src": "2117:88:2"
},
"nodeType": "YulFunctionCall",
"src": "2117:93:2"
},
"nodeType": "YulExpressionStatement",
"src": "2117:93:2"
},
{
"nodeType": "YulAssignment",
"src": "2219:19:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2230:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2235:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2226:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2226:12:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2219:3:2"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2012:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2020:3:2",
"type": ""
}
],
"src": "1878:366:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2421:248:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2431:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2443:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2454:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2439:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2439:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2431:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2478:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2489:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2474:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2474:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2497:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2503:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2493:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2493:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2467:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2467:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "2467:47:2"
},
{
"nodeType": "YulAssignment",
"src": "2523:139:2",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2657:4:2"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2531:124:2"
},
"nodeType": "YulFunctionCall",
"src": "2531:131:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2523:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2401:9:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2416:4:2",
"type": ""
}
],
"src": "2250:419:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2734:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2745:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2761:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2755:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2755:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2745:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2717:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2727:6:2",
"type": ""
}
],
"src": "2675:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2829:258:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2839:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2848:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2843:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2908:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2933:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2938:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2929:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2929:11:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2952:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2957:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2948:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2948:11:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2942:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2942:18:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2922:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2922:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "2922:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2869:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2872:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2866:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2866:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2880:19:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2882:15:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2891:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2894:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2887:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2887:10:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2882:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2862:3:2",
"statements": []
},
"src": "2858:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3005:76:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "3055:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3060:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3051:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3051:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3069:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3044:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3044:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "3044:27:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2986:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2989:6:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2983:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2983:13:2"
},
"nodeType": "YulIf",
"src": "2980:101:2"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2811:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2816:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2821:6:2",
"type": ""
}
],
"src": "2780:307:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3141:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3151:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3169:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3176:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3165:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3165:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3185:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3181:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3181:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3161:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3161:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3151:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3124:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3134:6:2",
"type": ""
}
],
"src": "3093:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3293:272:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3303:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3350:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3317:32:2"
},
"nodeType": "YulFunctionCall",
"src": "3317:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3307:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3365:78:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3431:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3436:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3372:58:2"
},
"nodeType": "YulFunctionCall",
"src": "3372:71:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3365:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3478:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3485:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3474:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3474:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3492:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3497:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "3452:21:2"
},
"nodeType": "YulFunctionCall",
"src": "3452:52:2"
},
"nodeType": "YulExpressionStatement",
"src": "3452:52:2"
},
{
"nodeType": "YulAssignment",
"src": "3513:46:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3524:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3551:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3529:21:2"
},
"nodeType": "YulFunctionCall",
"src": "3529:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3520:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3520:39:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3513:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3274:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3281:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3289:3:2",
"type": ""
}
],
"src": "3201:364:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3717:277:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3727:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3739:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3750:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3735:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3735:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3727:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3774:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3785:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3770:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3770:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3793:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3799:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3789:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3789:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3763:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3763:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "3763:47:2"
},
{
"nodeType": "YulAssignment",
"src": "3819:86:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3891:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3900:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3827:63:2"
},
"nodeType": "YulFunctionCall",
"src": "3827:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3819:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3959:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3972:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3983:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3968:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3968:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3915:43:2"
},
"nodeType": "YulFunctionCall",
"src": "3915:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "3915:72:2"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3681:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3693:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3701:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3712:4:2",
"type": ""
}
],
"src": "3571:423:2"
}
]
},
"contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(memPtr) {\n\n mstore(add(memPtr, 0), \"Caller is not owner\")\n\n }\n\n function abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b60405161005091906102ef565b60405180910390f35b610073600480360381019061006e919061033b565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610123906103c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61028182826040516024016101ff92919061046d565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610285565b5050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102d9826102ae565b9050919050565b6102e9816102ce565b82525050565b600060208201905061030460008301846102e0565b92915050565b600080fd5b610318816102ce565b811461032357600080fd5b50565b6000813590506103358161030f565b92915050565b6000602082840312156103515761035061030a565b5b600061035f84828501610326565b91505092915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b60006103af601383610368565b91506103ba82610379565b602082019050919050565b600060208201905081810360008301526103de816103a2565b9050919050565b600081519050919050565b60005b8381101561040e5780820151818401526020810190506103f3565b8381111561041d576000848401525b50505050565b6000601f19601f8301169050919050565b600061043f826103e5565b6104498185610368565b93506104598185602086016103f0565b61046281610423565b840191505092915050565b600060408201905081810360008301526104878185610434565b905061049660208301846102e0565b939250505056fea2646970667358221220e6da7ac5277dfc1502d5e2448400f616ad752402247f2d0b6911a5b31128202064736f6c634300080e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x281 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1FF SWAP3 SWAP2 SWAP1 PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x285 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 DUP5 DUP4 DUP6 GAS STATICCALL POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D9 DUP3 PUSH2 0x2AE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E9 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x304 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x318 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP2 EQ PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x335 DUP2 PUSH2 0x30F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x351 JUMPI PUSH2 0x350 PUSH2 0x30A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35F DUP5 DUP3 DUP6 ADD PUSH2 0x326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AF PUSH1 0x13 DUP4 PUSH2 0x368 JUMP JUMPDEST SWAP2 POP PUSH2 0x3BA DUP3 PUSH2 0x379 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DE DUP2 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x40E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3F3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43F DUP3 PUSH2 0x3E5 JUMP JUMPDEST PUSH2 0x449 DUP2 DUP6 PUSH2 0x368 JUMP JUMPDEST SWAP4 POP PUSH2 0x459 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3F0 JUMP JUMPDEST PUSH2 0x462 DUP2 PUSH2 0x423 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x487 DUP2 DUP6 PUSH2 0x434 JUMP JUMPDEST SWAP1 POP PUSH2 0x496 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0xDA PUSH27 0xC5277DFC1502D5E2448400F616AD752402247F2D0B6911A5B31128 KECCAK256 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD 0xE STOP CALLER ",
"sourceMap": "152:1413:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1482:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1267:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1482:81;1525:7;1551:5;;;;;;;;;;;1544:12;;1482:81;:::o;1267:127::-;830:5;;;;;;;;;;816:19;;:10;:19;;;808:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:8:::1;1336:25;;1345:5;::::0;::::1;;;;;;;;1336:25;;;;;;;;;;;;1379:8;1371:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1267:127:::0;:::o;6298:136:1:-;6359:71;6422:2;6426;6375:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6359:15;:71::i;:::-;6298:136;;:::o;176:288::-;240:21;264:7;:14;240:38;;282:22;129:42;282:40;;373:2;364:7;360:16;455:1;452;437:13;423:12;407:14;400:5;389:68;335:126;;;;176:288;:::o;7:126:2:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:169::-;1612:11;1646:6;1641:3;1634:19;1686:4;1681:3;1677:14;1662:29;;1528:169;;;;:::o;1703:::-;1843:21;1839:1;1831:6;1827:14;1820:45;1703:169;:::o;1878:366::-;2020:3;2041:67;2105:2;2100:3;2041:67;:::i;:::-;2034:74;;2117:93;2206:3;2117:93;:::i;:::-;2235:2;2230:3;2226:12;2219:19;;1878:366;;;:::o;2250:419::-;2416:4;2454:2;2443:9;2439:18;2431:26;;2503:9;2497:4;2493:20;2489:1;2478:9;2474:17;2467:47;2531:131;2657:4;2531:131;:::i;:::-;2523:139;;2250:419;;;:::o;2675:99::-;2727:6;2761:5;2755:12;2745:22;;2675:99;;;:::o;2780:307::-;2848:1;2858:113;2872:6;2869:1;2866:13;2858:113;;;2957:1;2952:3;2948:11;2942:18;2938:1;2933:3;2929:11;2922:39;2894:2;2891:1;2887:10;2882:15;;2858:113;;;2989:6;2986:1;2983:13;2980:101;;;3069:1;3060:6;3055:3;3051:16;3044:27;2980:101;2829:258;2780:307;;;:::o;3093:102::-;3134:6;3185:2;3181:7;3176:2;3169:5;3165:14;3161:28;3151:38;;3093:102;;;:::o;3201:364::-;3289:3;3317:39;3350:5;3317:39;:::i;:::-;3372:71;3436:6;3431:3;3372:71;:::i;:::-;3365:78;;3452:52;3497:6;3492:3;3485:4;3478:5;3474:16;3452:52;:::i;:::-;3529:29;3551:6;3529:29;:::i;:::-;3524:3;3520:39;3513:46;;3293:272;3201:364;;;;:::o;3571:423::-;3712:4;3750:2;3739:9;3735:18;3727:26;;3799:9;3793:4;3789:20;3785:1;3774:9;3770:17;3763:47;3827:78;3900:4;3891:6;3827:78;:::i;:::-;3819:86;;3915:72;3983:2;3972:9;3968:18;3959:6;3915:72;:::i;:::-;3571:423;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "247000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"changeOwner(address)": "30567",
"getOwner()": "2500"
}
},
"methodIdentifiers": {
"changeOwner(address)": "a6f9dae1",
"getOwner()": "893d20e8"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "changeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.14+commit.80d49f37"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "changeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Set & change owner",
"kind": "dev",
"methods": {
"changeOwner(address)": {
"details": "Change owner",
"params": {
"newOwner": "address of new owner"
}
},
"constructor": {
"details": "Set contract deployer as owner"
},
"getOwner()": {
"details": "Return owner address ",
"returns": {
"_0": "address of owner"
}
}
},
"title": "Owner",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/2_Owner.sol": "Owner"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/2_Owner.sol": {
"keccak256": "0x78bbbec96c5bc30ed379cb4c7bc96af4af5c71a2ed6cbd7b202097223e055294",
"license": "GPL-3.0",
"urls": [
"bzz-raw://4e78c8bdef7b614a92576df195209a00fcc09bbaa00ec98c0ea29cb2118da1c5",
"dweb:/ipfs/QmWrv2qJbxtDegicpu5rLGk4LgXvYvo1qXMW7qQpD6vGSX"
]
},
"hardhat/console.sol": {
"keccak256": "0x72b6a1d297cd3b033d7c2e4a7e7864934bb767db6453623f1c3082c6534547f4",
"license": "MIT",
"urls": [
"bzz-raw://a8cb8681076e765c214e0d51cac989325f6b98e315eaae06ee0cbd5a9f084763",
"dweb:/ipfs/QmNWGHi4zmjxQTYN3NMGnJd49jBT5dE4bxTdWEaDuJrC6N"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50611136806100206000396000f3fe60806040526004361061007b5760003560e01c80636281133d1161004e5780636281133d146103485780638da5cb5b1461047d578063999b93af146104d4578063e3de1703146105645761007b565b80630c53c51c14610080578063171755b1146101f55780632d0335ab146102b8578063564b81ef1461031d575b600080fd5b61017a600480360360a081101561009657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100d357600080fd5b8201836020820111156100e557600080fd5b8035906020019184600183028401116401000000008311171561010757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff16906020019092919050505061062c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ba57808201518184015260208101905061019f565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020157600080fd5b5061020a610a4c565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561027c578082015181840152602081019050610261565b50505050905090810190601f1680156102a95780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156102c457600080fd5b50610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b16565b6040518082815260200191505060405180910390f35b34801561032957600080fd5b50610332610b5e565b6040518082815260200191505060405180910390f35b34801561035457600080fd5b50610463600480360360e081101561036b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156103bc57600080fd5b8201836020820111156103ce57600080fd5b803590602001918460018302840111640100000000831117156103f057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff169060200190929190505050610b6b565b604051808215151515815260200191505060405180910390f35b34801561048957600080fd5b50610492610d7d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e057600080fd5b506104e9610da3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052957808201518184015260208101905061050e565b50505050905090810190601f1680156105565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057057600080fd5b5061062a6004803603602081101561058757600080fd5b81019080803590602001906401000000008111156105a457600080fd5b8201836020820111156105b657600080fd5b803590602001918460018302840111640100000000831117156105d857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e41565b005b6060610682866000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610679610b5e565b88888888610b6b565b6106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806110e06021913960400191505060405180910390fd5b61072960016000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea390919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060603073ffffffffffffffffffffffffffffffffffffffff1687896040516020018083805190602001908083835b602083106107be578051825260208201915060208101905060208303925061079b565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831061085b5780518252602082019150602081019050602083039250610838565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146108bd576040519150601f19603f3d011682016040523d82523d6000602084013e6108c2565b606091505b50915091508161093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000081525060200191505060405180910390fd5b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b883389604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a025780820151818401526020810190506109e7565b50505050905090810190601f168015610a2f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1809250505095945050505050565b6060600060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae65780601f10610abb57610100808354040283529160200191610ae6565b820191906000526020600020905b815481529060010190602001808311610ac957829003601f168201915b50505050509150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509091565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b600080610c2f88308989604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183815260200182805190602001908083835b60208310610bec5780518252602082019150602081019050602083039250610bc9565b6001836020036101000a03801982511681845116808217855250505050505090500194505050505060405160208183030381529060405280519060200120610f2b565b9050600060018285888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610c90573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e395780601f10610e0e57610100808354040283529160200191610e39565b820191906000526020600020905b815481529060010190602001808311610e1c57829003601f168201915b505050505081565b8060019080519060200190610e5792919061103a565b50610e60610f83565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015610f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561102e5760606000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050611036565b339050611037565b5b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061107b57805160ff19168380011785556110a9565b828001600101855582156110a9579182015b828111156110a857825182559160200191906001019061108d565b5b5090506110b691906110ba565b5090565b6110dc91905b808211156110d85760008160009055506001016110c0565b5090565b9056fe5369676e657220616e64207369676e617475726520646f206e6f74206d61746368a26469706673582212207ec6c5b1c2ceadc848599a68b3e58a5fda5cbddca9a2ee3d2113a9d28e6a766c64736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1136 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6281133D GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x6281133D EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x999B93AF EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xE3DE1703 EQ PUSH2 0x564 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0xC53C51C EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x171755B1 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x564B81EF EQ PUSH2 0x31D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x107 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1BA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1E7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH2 0xA4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x27C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x261 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2A9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB16 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x332 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x463 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x492 PUSH2 0xD7D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E9 PUSH2 0xDA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x529 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x50E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x556 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x5A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x5B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xE41 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH2 0x682 DUP7 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x679 PUSH2 0xB5E JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 PUSH2 0xB6B JUMP JUMPDEST PUSH2 0x6D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x10E0 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x729 PUSH1 0x1 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xEA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x60 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x7BE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x79B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x85B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x838 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8BD 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 0x8C2 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x93A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B DUP9 CALLER DUP10 PUSH1 0x40 MLOAD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA02 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9E7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xA2F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 SWAP3 POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xAE6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xABB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAE6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAC9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC2F DUP9 ADDRESS DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xBEC JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0xBC9 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xF2B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP6 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC90 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xD3F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x496E76616C6964207369676E6174757265000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP3 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xE39 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE0E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE1C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST DUP1 PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE57 SWAP3 SWAP2 SWAP1 PUSH2 0x103A JUMP JUMPDEST POP PUSH2 0xE60 PUSH2 0xF83 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xF21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x102E JUMPI PUSH1 0x60 PUSH1 0x0 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 CALLDATASIZE SWAP1 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 DUP4 ADD MLOAD AND SWAP3 POP POP POP PUSH2 0x1036 JUMP JUMPDEST CALLER SWAP1 POP PUSH2 0x1037 JUMP JUMPDEST JUMPDEST SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x107B JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x10A9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x10A9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x10A8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x108D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x10B6 SWAP2 SWAP1 PUSH2 0x10BA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x10DC SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x10D8 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x10C0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID MSTORE8 PUSH10 0x676E657220616E642073 PUSH10 0x676E617475726520646F KECCAK256 PUSH15 0x6F74206D61746368A2646970667358 0x22 SLT KECCAK256 PUSH31 0xC6C5B1C2CEADC848599A68B3E58A5FDA5CBDDCA9A2EE3D2113A9D28E6A766C PUSH5 0x736F6C6343 STOP MOD STOP STOP CALLER ",
"sourceMap": "66:395:1:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;66:395:1;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061007b5760003560e01c80636281133d1161004e5780636281133d146103485780638da5cb5b1461047d578063999b93af146104d4578063e3de1703146105645761007b565b80630c53c51c14610080578063171755b1146101f55780632d0335ab146102b8578063564b81ef1461031d575b600080fd5b61017a600480360360a081101561009657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100d357600080fd5b8201836020820111156100e557600080fd5b8035906020019184600183028401116401000000008311171561010757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff16906020019092919050505061062c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ba57808201518184015260208101905061019f565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020157600080fd5b5061020a610a4c565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561027c578082015181840152602081019050610261565b50505050905090810190601f1680156102a95780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156102c457600080fd5b50610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b16565b6040518082815260200191505060405180910390f35b34801561032957600080fd5b50610332610b5e565b6040518082815260200191505060405180910390f35b34801561035457600080fd5b50610463600480360360e081101561036b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156103bc57600080fd5b8201836020820111156103ce57600080fd5b803590602001918460018302840111640100000000831117156103f057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff169060200190929190505050610b6b565b604051808215151515815260200191505060405180910390f35b34801561048957600080fd5b50610492610d7d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e057600080fd5b506104e9610da3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052957808201518184015260208101905061050e565b50505050905090810190601f1680156105565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057057600080fd5b5061062a6004803603602081101561058757600080fd5b81019080803590602001906401000000008111156105a457600080fd5b8201836020820111156105b657600080fd5b803590602001918460018302840111640100000000831117156105d857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e41565b005b6060610682866000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610679610b5e565b88888888610b6b565b6106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806110e06021913960400191505060405180910390fd5b61072960016000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea390919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060603073ffffffffffffffffffffffffffffffffffffffff1687896040516020018083805190602001908083835b602083106107be578051825260208201915060208101905060208303925061079b565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831061085b5780518252602082019150602081019050602083039250610838565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146108bd576040519150601f19603f3d011682016040523d82523d6000602084013e6108c2565b606091505b50915091508161093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000081525060200191505060405180910390fd5b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b883389604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a025780820151818401526020810190506109e7565b50505050905090810190601f168015610a2f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1809250505095945050505050565b6060600060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae65780601f10610abb57610100808354040283529160200191610ae6565b820191906000526020600020905b815481529060010190602001808311610ac957829003601f168201915b50505050509150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509091565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b600080610c2f88308989604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183815260200182805190602001908083835b60208310610bec5780518252602082019150602081019050602083039250610bc9565b6001836020036101000a03801982511681845116808217855250505050505090500194505050505060405160208183030381529060405280519060200120610f2b565b9050600060018285888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610c90573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e395780601f10610e0e57610100808354040283529160200191610e39565b820191906000526020600020905b815481529060010190602001808311610e1c57829003601f168201915b505050505081565b8060019080519060200190610e5792919061103a565b50610e60610f83565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015610f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561102e5760606000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050611036565b339050611037565b5b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061107b57805160ff19168380011785556110a9565b828001600101855582156110a9579182015b828111156110a857825182559160200191906001019061108d565b5b5090506110b691906110ba565b5090565b6110dc91905b808211156110d85760008160009055506001016110c0565b5090565b9056fe5369676e657220616e64207369676e617475726520646f206e6f74206d61746368a26469706673582212207ec6c5b1c2ceadc848599a68b3e58a5fda5cbddca9a2ee3d2113a9d28e6a766c64736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6281133D GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x6281133D EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x999B93AF EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xE3DE1703 EQ PUSH2 0x564 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0xC53C51C EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x171755B1 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x564B81EF EQ PUSH2 0x31D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x107 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1BA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1E7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH2 0xA4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x27C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x261 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2A9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB16 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x332 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x463 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0xFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x492 PUSH2 0xD7D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E9 PUSH2 0xDA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x529 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x50E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x556 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x5A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x5B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xE41 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH2 0x682 DUP7 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x679 PUSH2 0xB5E JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 PUSH2 0xB6B JUMP JUMPDEST PUSH2 0x6D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x10E0 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x729 PUSH1 0x1 PUSH1 0x0 DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xEA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x60 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x7BE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x79B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x85B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x838 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8BD 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 0x8C2 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x93A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B DUP9 CALLER DUP10 PUSH1 0x40 MLOAD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA02 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9E7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xA2F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 SWAP3 POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xAE6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xABB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAE6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAC9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC2F DUP9 ADDRESS DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xBEC JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0xBC9 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xF2B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP6 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC90 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xD3F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x496E76616C6964207369676E6174757265000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP3 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xE39 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE0E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE1C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST DUP1 PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE57 SWAP3 SWAP2 SWAP1 PUSH2 0x103A JUMP JUMPDEST POP PUSH2 0xE60 PUSH2 0xF83 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xF21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x102E JUMPI PUSH1 0x60 PUSH1 0x0 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 CALLDATASIZE SWAP1 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 DUP4 ADD MLOAD AND SWAP3 POP POP POP PUSH2 0x1036 JUMP JUMPDEST CALLER SWAP1 POP PUSH2 0x1037 JUMP JUMPDEST JUMPDEST SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x107B JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x10A9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x10A9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x10A8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x108D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x10B6 SWAP2 SWAP1 PUSH2 0x10BA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x10DC SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x10D8 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x10C0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID MSTORE8 PUSH10 0x676E657220616E642073 PUSH10 0x676E617475726520646F KECCAK256 PUSH15 0x6F74206D61746368A2646970667358 0x22 SLT KECCAK256 PUSH31 0xC6C5B1C2CEADC848599A68B3E58A5FDA5CBDDCA9A2EE3D2113A9D28E6A766C PUSH5 0x736F6C6343 STOP MOD STOP STOP CALLER ",
"sourceMap": "66:395:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1237:760:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1237:760:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1237:760:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1237:760:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1237:760:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1237:760:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1237:760:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;298:160:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;298:160:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;298:160:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2005:108:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2005:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2005:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;439:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;439:161:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2354:436;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2354:436:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2354:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2354:436:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2354:436:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2354:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2354:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;147:20:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;147:20:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;121:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;121:19:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;121:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;176:114:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;176:114:1;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;176:114:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;176:114:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;176:114:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;176:114:1;;;;;;;;;;;;;;;:::i;:::-;;1237:760:0;1394:12;1429:91;1436:11;1449:6;:19;1456:11;1449:19;;;;;;;;;;;;;;;;1470:12;:10;:12::i;:::-;1484:17;1503:4;1509;1515;1429:6;:91::i;:::-;1421:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1591:26;1615:1;1591:6;:19;1598:11;1591:19;;;;;;;;;;;;;;;;:23;;:26;;;;:::i;:::-;1569:6;:19;1576:11;1569:19;;;;;;;;;;;;;;;:48;;;;1708:12;1722:23;1757:4;1749:18;;1785:17;1804:11;1768:48;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1768:48:0;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1768:48:0;;;1749:68;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1749:68:0;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1707:110:0;;;;1838:7;1830:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1894:67;1918:11;1931:10;1943:17;1894:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1894:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1979:10;1972:17;;;;1237:760;;;;;;;:::o;298:160:1:-;338:26;366:20;414:5;399:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;445:5;;;;;;;;;;;430:20;;298:160;;:::o;2005:108:0:-;2059:13;2093:6;:12;2100:4;2093:12;;;;;;;;;;;;;;;;2085:20;;2005:108;;;:::o;439:161::-;482:7;502:10;553:9;547:15;;590:2;583:9;;;439:161;:::o;2354:436::-;2519:4;2538:12;2553:78;2589:5;2596:4;2602:7;2611:17;2572:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2572:57:0;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2572:57:0;;;2562:68;;;;;;2553:8;:78::i;:::-;2538:93;;2642:14;2659:33;2669:4;2675;2681;2687;2659:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2659:33:0;;;;;;;;2642:50;;2729:1;2711:20;;:6;:20;;;;2703:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2775:6;2766:15;;:5;:15;;;2758:24;;;;2354:436;;;;;;;;;:::o;147:20:1:-;;;;;;;;;;;;;:::o;121:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;176:114::-;244:8;236:5;:16;;;;;;;;;;;;:::i;:::-;;271:11;:9;:11::i;:::-;263:5;;:19;;;;;;;;;;;;;;;;;;176:114;:::o;867:176:2:-;925:7;944:9;960:1;956;:5;944:17;;984:1;979;:6;;971:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:1;1028:8;;;867:176;;;;:::o;2187:159:0:-;2242:7;2332:4;2279:58;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2279:58:0;;;2269:69;;;;;;2262:76;;2187:159;;;:::o;2798:512::-;2841:14;2893:4;2871:27;;:10;:27;;;2868:435;;;2915:18;2936:8;;2915:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2915:29:0;;;;;;;;2959:13;2975:8;;:15;;2959:31;;3184:42;3175:5;3168;3164:17;3158:24;3154:73;3144:83;;3014:228;;;;;3281:10;3274:17;;;;2868:435;2798:512;;:::o;66:395:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "881200",
"executionCost": "916",
"totalCost": "882116"
},
"external": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": "infinite",
"getChainID()": "292",
"getNonce(address)": "1241",
"getQuote()": "infinite",
"owner()": "1075",
"quote()": "infinite",
"setQuote(string)": "infinite",
"verify(address,uint256,uint256,bytes,bytes32,bytes32,uint8)": "infinite"
}
},
"methodIdentifiers": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": "0c53c51c",
"getChainID()": "564b81ef",
"getNonce(address)": "2d0335ab",
"getQuote()": "171755b1",
"owner()": "8da5cb5b",
"quote()": "999b93af",
"setQuote(string)": "e3de1703",
"verify(address,uint256,uint256,bytes,bytes32,bytes32,uint8)": "6281133d"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address payable",
"name": "relayerAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
}
],
"name": "MetaTransactionExecuted",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "executeMetaTransaction",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getChainID",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getQuote",
"outputs": [
{
"internalType": "string",
"name": "currentQuote",
"type": "string"
},
{
"internalType": "address",
"name": "currentOwner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "quote",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "newQuote",
"type": "string"
}
],
"name": "setQuote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "chainID",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "verify",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.0+commit.26b70077"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address payable",
"name": "relayerAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
}
],
"name": "MetaTransactionExecuted",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "executeMetaTransaction",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getChainID",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getQuote",
"outputs": [
{
"internalType": "string",
"name": "currentQuote",
"type": "string"
},
{
"internalType": "address",
"name": "currentOwner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "quote",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "newQuote",
"type": "string"
}
],
"name": "setQuote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "chainID",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "verify",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": {
"params": {
"functionSignature": "Signature of the actual function to be called via meta transaction",
"sigR": "R part of the signature",
"sigS": "S part of the signature",
"sigV": "V part of the signature",
"userAddress": "Address of user trying to do meta transaction"
}
}
}
},
"userdoc": {
"methods": {
"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)": {
"notice": "Main function to be called when user wants to execute meta transaction. The actual function to be called should be passed as param with name functionSignature Here the basic signature recovery is being used. Signature is expected to be generated using personal_sign method."
}
}
}
},
"settings": {
"compilationTarget": {
"contracts/TestContract.sol": "TestContract"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/BasicMetaTransaction.sol": {
"keccak256": "0xb7c29b1bdae14c685af5b0a42afd99a1696d47e198d1fb6c96d0bb3373d9b02d",
"urls": [
"bzz-raw://90266df0c07f59ffd3b28c2c442127bac1f5dae12b403c9dabadbbe920250bad",
"dweb:/ipfs/QmUmco744fC1LHuUxFgyNSxQaCDZhEiq4qRkXvWakuGyfA"
]
},
"contracts/TestContract.sol": {
"keccak256": "0xaa3dea4c2791f4d26e7bfb728f6a2d89f1b5c76a51af8b95a5b4614c9a55d645",
"urls": [
"bzz-raw://7669e8b150da8a7a554d312a357c720de218902087f8f6627652edb5660c3236",
"dweb:/ipfs/Qmbk4vejyQNPpk31urYLvAZZjwFF9U3vyasD76FEKYGYV5"
]
},
"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.0.0/contracts/math/SafeMath.sol": {
"keccak256": "0xaa0e11a791bc975d581a4f5b7a8d9c16a880a354c89312318ae072ae3e740409",
"urls": [
"bzz-raw://982d8b344f76193834260436d74c81e5a8f9e89106bb4cd72bbaabda4f3f59c2",
"dweb:/ipfs/QmSrvP5TkQRhKDVCTpsV3uaKLBhkt7PjUY89vdtM9o5ybK"
]
}
},
"version": 1
}
pragma solidity 0.6.0;
// import "@openzeppelin/contracts/math/SafeMath.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.0.0/contracts/math/SafeMath.sol";
contract BasicMetaTransaction {
using SafeMath for uint256;
event MetaTransactionExecuted(address userAddress, address payable relayerAddress, bytes functionSignature);
mapping(address => uint256) private nonces;
function getChainID() public pure returns (uint256) {
uint256 id;
assembly {
id := chainid()
}
return id;
}
/**
* Main function to be called when user wants to execute meta transaction.
* The actual function to be called should be passed as param with name functionSignature
* Here the basic signature recovery is being used. Signature is expected to be generated using
* personal_sign method.
* @param userAddress Address of user trying to do meta transaction
* @param functionSignature Signature of the actual function to be called via meta transaction
* @param sigR R part of the signature
* @param sigS S part of the signature
* @param sigV V part of the signature
*/
function executeMetaTransaction(address userAddress, bytes memory functionSignature,
bytes32 sigR, bytes32 sigS, uint8 sigV) public payable returns(bytes memory) {
require(verify(userAddress, nonces[userAddress], getChainID(), functionSignature, sigR, sigS, sigV), "Signer and signature do not match");
nonces[userAddress] = nonces[userAddress].add(1);
// Append userAddress at the end to extract it from calling context
(bool success, bytes memory returnData) = address(this).call(abi.encodePacked(functionSignature, userAddress));
require(success, "Function call not successful");
emit MetaTransactionExecuted(userAddress, msg.sender, functionSignature);
return returnData;
}
function getNonce(address user) external view returns(uint256 nonce) {
nonce = nonces[user];
}
// Builds a prefixed hash to mimic the behavior of eth_sign.
function prefixed(bytes32 hash) internal pure returns (bytes32) {
return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
}
function verify(address owner, uint256 nonce, uint256 chainID, bytes memory functionSignature,
bytes32 sigR, bytes32 sigS, uint8 sigV) public view returns (bool) {
bytes32 hash = prefixed(keccak256(abi.encodePacked(nonce, this, chainID, functionSignature)));
address signer = ecrecover(hash, sigV, sigR, sigS);
require(signer != address(0), "Invalid signature");
return (owner == signer);
}
function msgSender() internal view returns(address sender) {
if(msg.sender == address(this)) {
bytes memory array = msg.data;
uint256 index = msg.data.length;
assembly {
// Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those.
sender := and(mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff)
}
} else {
return msg.sender;
}
}
}
pragma solidity 0.6.0;
import "./BasicMetaTransaction.sol";
contract TestContract is BasicMetaTransaction {
string public quote;
address public owner;
function setQuote(string memory newQuote) public {
quote = newQuote;
owner = msgSender();
}
function getQuote() public view returns(string memory currentQuote, address currentOwner) {
currentQuote = quote;
currentOwner = owner;
}
}
This file has been truncated, but you can view the full file.
{
"id": "068767c64211690c5d0fde179d1395fe",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.14",
"solcLongVersion": "0.8.14+commit.80d49f37",
"input": {
"language": "Solidity",
"sources": {
"contracts/2_Owner.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"hardhat/console.sol\";\n\n/**\n * @title Owner\n * @dev Set & change owner\n */\ncontract Owner {\n\n address private owner;\n\n // event for EVM logging\n event OwnerSet(address indexed oldOwner, address indexed newOwner);\n\n // modifier to check if caller is owner\n modifier isOwner() {\n // If the first argument of 'require' evaluates to 'false', execution terminates and all\n // changes to the state and to Ether balances are reverted.\n // This used to consume all gas in old EVM versions, but not anymore.\n // It is often a good idea to use 'require' to check if functions are called correctly.\n // As a second argument, you can also provide an explanation about what went wrong.\n require(msg.sender == owner, \"Caller is not owner\");\n _;\n }\n\n /**\n * @dev Set contract deployer as owner\n */\n constructor() {\n console.log(\"Owner contract deployed by:\", msg.sender);\n owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor\n emit OwnerSet(address(0), owner);\n }\n\n /**\n * @dev Change owner\n * @param newOwner address of new owner\n */\n function changeOwner(address newOwner) public isOwner {\n emit OwnerSet(owner, newOwner);\n owner = newOwner;\n }\n\n /**\n * @dev Return owner address \n * @return address of owner\n */\n function getOwner() external view returns (address) {\n return owner;\n }\n} "
},
"hardhat/console.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity >= 0.4.22 <0.9.0;\n\nlibrary console {\n\taddress constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);\n\n\tfunction _sendLogPayload(bytes memory payload) private view {\n\t\tuint256 payloadLength = payload.length;\n\t\taddress consoleAddress = CONSOLE_ADDRESS;\n\t\tassembly {\n\t\t\tlet payloadStart := add(payload, 32)\n\t\t\tlet r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)\n\t\t}\n\t}\n\n\tfunction log() internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log()\"));\n\t}\n\n\tfunction logInt(int p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(int)\", p0));\n\t}\n\n\tfunction logUint(uint p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint)\", p0));\n\t}\n\n\tfunction logString(string memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n\t}\n\n\tfunction logBool(bool p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n\t}\n\n\tfunction logAddress(address p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n\t}\n\n\tfunction logBytes(bytes memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n\t}\n\n\tfunction logBytes1(bytes1 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n\t}\n\n\tfunction logBytes2(bytes2 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n\t}\n\n\tfunction logBytes3(bytes3 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n\t}\n\n\tfunction logBytes4(bytes4 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n\t}\n\n\tfunction logBytes5(bytes5 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n\t}\n\n\tfunction logBytes6(bytes6 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n\t}\n\n\tfunction logBytes7(bytes7 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n\t}\n\n\tfunction logBytes8(bytes8 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n\t}\n\n\tfunction logBytes9(bytes9 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n\t}\n\n\tfunction logBytes10(bytes10 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n\t}\n\n\tfunction logBytes11(bytes11 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n\t}\n\n\tfunction logBytes12(bytes12 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n\t}\n\n\tfunction logBytes13(bytes13 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n\t}\n\n\tfunction logBytes14(bytes14 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n\t}\n\n\tfunction logBytes15(bytes15 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n\t}\n\n\tfunction logBytes16(bytes16 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n\t}\n\n\tfunction logBytes17(bytes17 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n\t}\n\n\tfunction logBytes18(bytes18 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n\t}\n\n\tfunction logBytes19(bytes19 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n\t}\n\n\tfunction logBytes20(bytes20 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n\t}\n\n\tfunction logBytes21(bytes21 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n\t}\n\n\tfunction logBytes22(bytes22 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n\t}\n\n\tfunction logBytes23(bytes23 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n\t}\n\n\tfunction logBytes24(bytes24 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n\t}\n\n\tfunction logBytes25(bytes25 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n\t}\n\n\tfunction logBytes26(bytes26 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n\t}\n\n\tfunction logBytes27(bytes27 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n\t}\n\n\tfunction logBytes28(bytes28 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n\t}\n\n\tfunction logBytes29(bytes29 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n\t}\n\n\tfunction logBytes30(bytes30 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n\t}\n\n\tfunction logBytes31(bytes31 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n\t}\n\n\tfunction logBytes32(bytes32 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n\t}\n\n\tfunction log(uint p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint)\", p0));\n\t}\n\n\tfunction log(string memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n\t}\n\n\tfunction log(bool p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n\t}\n\n\tfunction log(address p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n\t}\n\n\tfunction log(uint p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n\t}\n\n\tfunction log(address p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint)\", p0, p1));\n\t}\n\n\tfunction log(address p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n\t}\n\n\tfunction log(address p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n\t}\n\n\tfunction log(address p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/2_Owner.sol": {
"Owner": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "changeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Set & change owner",
"kind": "dev",
"methods": {
"changeOwner(address)": {
"details": "Change owner",
"params": {
"newOwner": "address of new owner"
}
},
"constructor": {
"details": "Set contract deployer as owner"
},
"getOwner()": {
"details": "Return owner address ",
"returns": {
"_0": "address of owner"
}
}
},
"title": "Owner",
"version": 1
},
"evm": {
"assembly": " /* \"contracts/2_Owner.sol\":152:1565 contract Owner {... */\n mstore(0x40, 0x80)\n /* \"contracts/2_Owner.sol\":942:1176 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"contracts/2_Owner.sol\":966:1020 console.log(\"Owner contract deployed by:\", msg.sender) */\n tag_4\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x1b\n dup2\n mstore\n 0x20\n add\n 0x4f776e657220636f6e7472616374206465706c6f7965642062793a0000000000\n dup2\n mstore\n pop\n /* \"contracts/2_Owner.sol\":1009:1019 msg.sender */\n caller\n /* \"contracts/2_Owner.sol\":966:977 console.log */\n or(tag_0_13, shl(0x20, tag_5))\n /* \"contracts/2_Owner.sol\":966:1020 console.log(\"Owner contract deployed by:\", msg.sender) */\n 0x20\n shr\n jump\t// in\ntag_4:\n /* \"contracts/2_Owner.sol\":1038:1048 msg.sender */\n caller\n /* \"contracts/2_Owner.sol\":1030:1035 owner */\n 0x00\n dup1\n /* \"contracts/2_Owner.sol\":1030:1048 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/2_Owner.sol\":1163:1168 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/2_Owner.sol\":1142:1169 OwnerSet(address(0), owner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/2_Owner.sol\":1159:1160 0 */\n 0x00\n /* \"contracts/2_Owner.sol\":1142:1169 OwnerSet(address(0), owner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/2_Owner.sol\":152:1565 contract Owner {... */\n jump(tag_6)\n /* \"hardhat/console.sol\":6298:6434 function log(string memory p0, address p1) internal view {... */\ntag_5:\n /* \"hardhat/console.sol\":6359:6430 _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1)) */\n tag_8\n /* \"hardhat/console.sol\":6422:6424 p0 */\n dup3\n /* \"hardhat/console.sol\":6426:6428 p1 */\n dup3\n /* \"hardhat/console.sol\":6375:6429 abi.encodeWithSignature(\"log(string,address)\", p0, p1) */\n add(0x24, mload(0x40))\n tag_9\n swap3\n swap2\n swap1\n tag_10\n jump\t// in\ntag_9:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), 0x319af33300000000000000000000000000000000000000000000000000000000)\n 0x20\n dup3\n add\n dup1\n mload\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n dup4\n dup2\n dup4\n and\n or\n dup4\n mstore\n pop\n pop\n pop\n pop\n /* \"hardhat/console.sol\":6359:6374 _sendLogPayload */\n shl(0x20, tag_11)\n /* \"hardhat/console.sol\":6359:6430 _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1)) */\n 0x20\n shr\n jump\t// in\ntag_8:\n /* \"hardhat/console.sol\":6298:6434 function log(string memory p0, address p1) internal view {... */\n pop\n pop\n jump\t// out\n /* \"hardhat/console.sol\":176:464 function _sendLogPayload(bytes memory payload) private view {... */\ntag_11:\n /* \"hardhat/console.sol\":240:261 uint256 payloadLength */\n 0x00\n /* \"hardhat/console.sol\":264:271 payload */\n dup2\n /* \"hardhat/console.sol\":264:278 payload.length */\n mload\n /* \"hardhat/console.sol\":240:278 uint256 payloadLength = payload.length */\n swap1\n pop\n /* \"hardhat/console.sol\":282:304 address consoleAddress */\n 0x00\n /* \"hardhat/console.sol\":129:171 0x000000000000000000636F6e736F6c652e6c6f67 */\n 0x636f6e736f6c652e6c6f67\n /* \"hardhat/console.sol\":282:322 address consoleAddress = CONSOLE_ADDRESS */\n swap1\n pop\n /* \"hardhat/console.sol\":373:375 32 */\n 0x20\n /* \"hardhat/console.sol\":364:371 payload */\n dup4\n /* \"hardhat/console.sol\":360:376 add(payload, 32) */\n add\n /* \"hardhat/console.sol\":455:456 0 */\n 0x00\n /* \"hardhat/console.sol\":452:453 0 */\n dup1\n /* \"hardhat/console.sol\":437:450 payloadLength */\n dup5\n /* \"hardhat/console.sol\":423:435 payloadStart */\n dup4\n /* \"hardhat/console.sol\":407:421 consoleAddress */\n dup6\n /* \"hardhat/console.sol\":400:405 gas() */\n gas\n /* \"hardhat/console.sol\":389:457 staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) */\n staticcall\n /* \"hardhat/console.sol\":335:461 {... */\n pop\n pop\n pop\n pop\n /* \"hardhat/console.sol\":176:464 function _sendLogPayload(bytes memory payload) private view {... */\n pop\n jump\t// out\n /* \"#utility.yul\":7:106 */\ntag_13:\n /* \"#utility.yul\":59:65 */\n 0x00\n /* \"#utility.yul\":93:98 */\n dup2\n /* \"#utility.yul\":87:99 */\n mload\n /* \"#utility.yul\":77:99 */\n swap1\n pop\n /* \"#utility.yul\":7:106 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":112:281 */\ntag_14:\n /* \"#utility.yul\":196:207 */\n 0x00\n /* \"#utility.yul\":230:236 */\n dup3\n /* \"#utility.yul\":225:228 */\n dup3\n /* \"#utility.yul\":218:237 */\n mstore\n /* \"#utility.yul\":270:274 */\n 0x20\n /* \"#utility.yul\":265:268 */\n dup3\n /* \"#utility.yul\":261:275 */\n add\n /* \"#utility.yul\":246:275 */\n swap1\n pop\n /* \"#utility.yul\":112:281 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":287:594 */\ntag_15:\n /* \"#utility.yul\":355:356 */\n 0x00\n /* \"#utility.yul\":365:478 */\ntag_25:\n /* \"#utility.yul\":379:385 */\n dup4\n /* \"#utility.yul\":376:377 */\n dup2\n /* \"#utility.yul\":373:386 */\n lt\n /* \"#utility.yul\":365:478 */\n iszero\n tag_27\n jumpi\n /* \"#utility.yul\":464:465 */\n dup1\n /* \"#utility.yul\":459:462 */\n dup3\n /* \"#utility.yul\":455:466 */\n add\n /* \"#utility.yul\":449:467 */\n mload\n /* \"#utility.yul\":445:446 */\n dup2\n /* \"#utility.yul\":440:443 */\n dup5\n /* \"#utility.yul\":436:447 */\n add\n /* \"#utility.yul\":429:468 */\n mstore\n /* \"#utility.yul\":401:403 */\n 0x20\n /* \"#utility.yul\":398:399 */\n dup2\n /* \"#utility.yul\":394:404 */\n add\n /* \"#utility.yul\":389:404 */\n swap1\n pop\n /* \"#utility.yul\":365:478 */\n jump(tag_25)\ntag_27:\n /* \"#utility.yul\":496:502 */\n dup4\n /* \"#utility.yul\":493:494 */\n dup2\n /* \"#utility.yul\":490:503 */\n gt\n /* \"#utility.yul\":487:588 */\n iszero\n tag_28\n jumpi\n /* \"#utility.yul\":576:577 */\n 0x00\n /* \"#utility.yul\":567:573 */\n dup5\n /* \"#utility.yul\":562:565 */\n dup5\n /* \"#utility.yul\":558:574 */\n add\n /* \"#utility.yul\":551:578 */\n mstore\n /* \"#utility.yul\":487:588 */\ntag_28:\n /* \"#utility.yul\":336:594 */\n pop\n /* \"#utility.yul\":287:594 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":600:702 */\ntag_16:\n /* \"#utility.yul\":641:647 */\n 0x00\n /* \"#utility.yul\":692:694 */\n 0x1f\n /* \"#utility.yul\":688:695 */\n not\n /* \"#utility.yul\":683:685 */\n 0x1f\n /* \"#utility.yul\":676:681 */\n dup4\n /* \"#utility.yul\":672:686 */\n add\n /* \"#utility.yul\":668:696 */\n and\n /* \"#utility.yul\":658:696 */\n swap1\n pop\n /* \"#utility.yul\":600:702 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":708:1072 */\ntag_17:\n /* \"#utility.yul\":796:799 */\n 0x00\n /* \"#utility.yul\":824:863 */\n tag_31\n /* \"#utility.yul\":857:862 */\n dup3\n /* \"#utility.yul\":824:863 */\n tag_13\n jump\t// in\ntag_31:\n /* \"#utility.yul\":879:950 */\n tag_32\n /* \"#utility.yul\":943:949 */\n dup2\n /* \"#utility.yul\":938:941 */\n dup6\n /* \"#utility.yul\":879:950 */\n tag_14\n jump\t// in\ntag_32:\n /* \"#utility.yul\":872:950 */\n swap4\n pop\n /* \"#utility.yul\":959:1011 */\n tag_33\n /* \"#utility.yul\":1004:1010 */\n dup2\n /* \"#utility.yul\":999:1002 */\n dup6\n /* \"#utility.yul\":992:996 */\n 0x20\n /* \"#utility.yul\":985:990 */\n dup7\n /* \"#utility.yul\":981:997 */\n add\n /* \"#utility.yul\":959:1011 */\n tag_15\n jump\t// in\ntag_33:\n /* \"#utility.yul\":1036:1065 */\n tag_34\n /* \"#utility.yul\":1058:1064 */\n dup2\n /* \"#utility.yul\":1036:1065 */\n tag_16\n jump\t// in\ntag_34:\n /* \"#utility.yul\":1031:1034 */\n dup5\n /* \"#utility.yul\":1027:1066 */\n add\n /* \"#utility.yul\":1020:1066 */\n swap2\n pop\n /* \"#utility.yul\":800:1072 */\n pop\n /* \"#utility.yul\":708:1072 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1078:1204 */\ntag_18:\n /* \"#utility.yul\":1115:1122 */\n 0x00\n /* \"#utility.yul\":1155:1197 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1148:1153 */\n dup3\n /* \"#utility.yul\":1144:1198 */\n and\n /* \"#utility.yul\":1133:1198 */\n swap1\n pop\n /* \"#utility.yul\":1078:1204 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1210:1306 */\ntag_19:\n /* \"#utility.yul\":1247:1254 */\n 0x00\n /* \"#utility.yul\":1276:1300 */\n tag_37\n /* \"#utility.yul\":1294:1299 */\n dup3\n /* \"#utility.yul\":1276:1300 */\n tag_18\n jump\t// in\ntag_37:\n /* \"#utility.yul\":1265:1300 */\n swap1\n pop\n /* \"#utility.yul\":1210:1306 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1312:1430 */\ntag_20:\n /* \"#utility.yul\":1399:1423 */\n tag_39\n /* \"#utility.yul\":1417:1422 */\n dup2\n /* \"#utility.yul\":1399:1423 */\n tag_19\n jump\t// in\ntag_39:\n /* \"#utility.yul\":1394:1397 */\n dup3\n /* \"#utility.yul\":1387:1424 */\n mstore\n /* \"#utility.yul\":1312:1430 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1436:1859 */\ntag_10:\n /* \"#utility.yul\":1577:1581 */\n 0x00\n /* \"#utility.yul\":1615:1617 */\n 0x40\n /* \"#utility.yul\":1604:1613 */\n dup3\n /* \"#utility.yul\":1600:1618 */\n add\n /* \"#utility.yul\":1592:1618 */\n swap1\n pop\n /* \"#utility.yul\":1664:1673 */\n dup2\n /* \"#utility.yul\":1658:1662 */\n dup2\n /* \"#utility.yul\":1654:1674 */\n sub\n /* \"#utility.yul\":1650:1651 */\n 0x00\n /* \"#utility.yul\":1639:1648 */\n dup4\n /* \"#utility.yul\":1635:1652 */\n add\n /* \"#utility.yul\":1628:1675 */\n mstore\n /* \"#utility.yul\":1692:1770 */\n tag_41\n /* \"#utility.yul\":1765:1769 */\n dup2\n /* \"#utility.yul\":1756:1762 */\n dup6\n /* \"#utility.yul\":1692:1770 */\n tag_17\n jump\t// in\ntag_41:\n /* \"#utility.yul\":1684:1770 */\n swap1\n pop\n /* \"#utility.yul\":1780:1852 */\n tag_42\n /* \"#utility.yul\":1848:1850 */\n 0x20\n /* \"#utility.yul\":1837:1846 */\n dup4\n /* \"#utility.yul\":1833:1851 */\n add\n /* \"#utility.yul\":1824:1830 */\n dup5\n /* \"#utility.yul\":1780:1852 */\n tag_20\n jump\t// in\ntag_42:\n /* \"#utility.yul\":1436:1859 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"contracts/2_Owner.sol\":152:1565 contract Owner {... */\ntag_6:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/2_Owner.sol\":152:1565 contract Owner {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x893d20e8\n eq\n tag_3\n jumpi\n dup1\n 0xa6f9dae1\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/2_Owner.sol\":1482:1563 function getOwner() external view returns (address) {... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n mload(0x40)\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/2_Owner.sol\":1267:1394 function changeOwner(address newOwner) public isOwner {... */\n tag_4:\n tag_9\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n tag_12\n jump\t// in\n tag_9:\n stop\n /* \"contracts/2_Owner.sol\":1482:1563 function getOwner() external view returns (address) {... */\n tag_6:\n /* \"contracts/2_Owner.sol\":1525:1532 address */\n 0x00\n /* \"contracts/2_Owner.sol\":1551:1556 owner */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/2_Owner.sol\":1544:1556 return owner */\n swap1\n pop\n /* \"contracts/2_Owner.sol\":1482:1563 function getOwner() external view returns (address) {... */\n swap1\n jump\t// out\n /* \"contracts/2_Owner.sol\":1267:1394 function changeOwner(address newOwner) public isOwner {... */\n tag_12:\n /* \"contracts/2_Owner.sol\":830:835 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/2_Owner.sol\":816:835 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/2_Owner.sol\":816:826 msg.sender */\n caller\n /* \"contracts/2_Owner.sol\":816:835 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/2_Owner.sol\":808:859 require(msg.sender == owner, \"Caller is not owner\") */\n tag_16\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_17\n swap1\n tag_18\n jump\t// in\n tag_17:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_16:\n /* \"contracts/2_Owner.sol\":1352:1360 newOwner */\n dup1\n /* \"contracts/2_Owner.sol\":1336:1361 OwnerSet(owner, newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/2_Owner.sol\":1345:1350 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/2_Owner.sol\":1336:1361 OwnerSet(owner, newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/2_Owner.sol\":1379:1387 newOwner */\n dup1\n /* \"contracts/2_Owner.sol\":1371:1376 owner */\n 0x00\n dup1\n /* \"contracts/2_Owner.sol\":1371:1387 owner = newOwner */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/2_Owner.sol\":1267:1394 function changeOwner(address newOwner) public isOwner {... */\n pop\n jump\t// out\n /* \"hardhat/console.sol\":6298:6434 function log(string memory p0, address p1) internal view {... */\n tag_13:\n /* \"hardhat/console.sol\":6359:6430 _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1)) */\n tag_21\n /* \"hardhat/console.sol\":6422:6424 p0 */\n dup3\n /* \"hardhat/console.sol\":6426:6428 p1 */\n dup3\n /* \"hardhat/console.sol\":6375:6429 abi.encodeWithSignature(\"log(string,address)\", p0, p1) */\n add(0x24, mload(0x40))\n tag_22\n swap3\n swap2\n swap1\n tag_23\n jump\t// in\n tag_22:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), 0x319af33300000000000000000000000000000000000000000000000000000000)\n 0x20\n dup3\n add\n dup1\n mload\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n dup4\n dup2\n dup4\n and\n or\n dup4\n mstore\n pop\n pop\n pop\n pop\n /* \"hardhat/console.sol\":6359:6374 _sendLogPayload */\n tag_24\n /* \"hardhat/console.sol\":6359:6430 _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1)) */\n jump\t// in\n tag_21:\n /* \"hardhat/console.sol\":6298:6434 function log(string memory p0, address p1) internal view {... */\n pop\n pop\n jump\t// out\n /* \"hardhat/console.sol\":176:464 function _sendLogPayload(bytes memory payload) private view {... */\n tag_24:\n /* \"hardhat/console.sol\":240:261 uint256 payloadLength */\n 0x00\n /* \"hardhat/console.sol\":264:271 payload */\n dup2\n /* \"hardhat/console.sol\":264:278 payload.length */\n mload\n /* \"hardhat/console.sol\":240:278 uint256 payloadLength = payload.length */\n swap1\n pop\n /* \"hardhat/console.sol\":282:304 address consoleAddress */\n 0x00\n /* \"hardhat/console.sol\":129:171 0x000000000000000000636F6e736F6c652e6c6f67 */\n 0x636f6e736f6c652e6c6f67\n /* \"hardhat/console.sol\":282:322 address consoleAddress = CONSOLE_ADDRESS */\n swap1\n pop\n /* \"hardhat/console.sol\":373:375 32 */\n 0x20\n /* \"hardhat/console.sol\":364:371 payload */\n dup4\n /* \"hardhat/console.sol\":360:376 add(payload, 32) */\n add\n /* \"hardhat/console.sol\":455:456 0 */\n 0x00\n /* \"hardhat/console.sol\":452:453 0 */\n dup1\n /* \"hardhat/console.sol\":437:450 payloadLength */\n dup5\n /* \"hardhat/console.sol\":423:435 payloadStart */\n dup4\n /* \"hardhat/console.sol\":407:421 consoleAddress */\n dup6\n /* \"hardhat/console.sol\":400:405 gas() */\n gas\n /* \"hardhat/console.sol\":389:457 staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) */\n staticcall\n /* \"hardhat/console.sol\":335:461 {... */\n pop\n pop\n pop\n pop\n /* \"hardhat/console.sol\":176:464 function _sendLogPayload(bytes memory payload) private view {... */\n pop\n jump\t// out\n /* \"#utility.yul\":7:133 */\n tag_26:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":84:126 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":77:82 */\n dup3\n /* \"#utility.yul\":73:127 */\n and\n /* \"#utility.yul\":62:127 */\n swap1\n pop\n /* \"#utility.yul\":7:133 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":139:235 */\n tag_27:\n /* \"#utility.yul\":176:183 */\n 0x00\n /* \"#utility.yul\":205:229 */\n tag_44\n /* \"#utility.yul\":223:228 */\n dup3\n /* \"#utility.yul\":205:229 */\n tag_26\n jump\t// in\n tag_44:\n /* \"#utility.yul\":194:229 */\n swap1\n pop\n /* \"#utility.yul\":139:235 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":241:359 */\n tag_28:\n /* \"#utility.yul\":328:352 */\n tag_46\n /* \"#utility.yul\":346:351 */\n dup2\n /* \"#utility.yul\":328:352 */\n tag_27\n jump\t// in\n tag_46:\n /* \"#utility.yul\":323:326 */\n dup3\n /* \"#utility.yul\":316:353 */\n mstore\n /* \"#utility.yul\":241:359 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":365:587 */\n tag_8:\n /* \"#utility.yul\":458:462 */\n 0x00\n /* \"#utility.yul\":496:498 */\n 0x20\n /* \"#utility.yul\":485:494 */\n dup3\n /* \"#utility.yul\":481:499 */\n add\n /* \"#utility.yul\":473:499 */\n swap1\n pop\n /* \"#utility.yul\":509:580 */\n tag_48\n /* \"#utility.yul\":577:578 */\n 0x00\n /* \"#utility.yul\":566:575 */\n dup4\n /* \"#utility.yul\":562:579 */\n add\n /* \"#utility.yul\":553:559 */\n dup5\n /* \"#utility.yul\":509:580 */\n tag_28\n jump\t// in\n tag_48:\n /* \"#utility.yul\":365:587 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":674:791 */\n tag_30:\n /* \"#utility.yul\":783:784 */\n 0x00\n /* \"#utility.yul\":780:781 */\n dup1\n /* \"#utility.yul\":773:785 */\n revert\n /* \"#utility.yul\":920:1042 */\n tag_32:\n /* \"#utility.yul\":993:1017 */\n tag_53\n /* \"#utility.yul\":1011:1016 */\n dup2\n /* \"#utility.yul\":993:1017 */\n tag_27\n jump\t// in\n tag_53:\n /* \"#utility.yul\":986:991 */\n dup2\n /* \"#utility.yul\":983:1018 */\n eq\n /* \"#utility.yul\":973:1036 */\n tag_54\n jumpi\n /* \"#utility.yul\":1032:1033 */\n 0x00\n /* \"#utility.yul\":1029:1030 */\n dup1\n /* \"#utility.yul\":1022:1034 */\n revert\n /* \"#utility.yul\":973:1036 */\n tag_54:\n /* \"#utility.yul\":920:1042 */\n pop\n jump\t// out\n /* \"#utility.yul\":1048:1187 */\n tag_33:\n /* \"#utility.yul\":1094:1099 */\n 0x00\n /* \"#utility.yul\":1132:1138 */\n dup2\n /* \"#utility.yul\":1119:1139 */\n calldataload\n /* \"#utility.yul\":1110:1139 */\n swap1\n pop\n /* \"#utility.yul\":1148:1181 */\n tag_56\n /* \"#utility.yul\":1175:1180 */\n dup2\n /* \"#utility.yul\":1148:1181 */\n tag_32\n jump\t// in\n tag_56:\n /* \"#utility.yul\":1048:1187 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1193:1522 */\n tag_11:\n /* \"#utility.yul\":1252:1258 */\n 0x00\n /* \"#utility.yul\":1301:1303 */\n 0x20\n /* \"#utility.yul\":1289:1298 */\n dup3\n /* \"#utility.yul\":1280:1287 */\n dup5\n /* \"#utility.yul\":1276:1299 */\n sub\n /* \"#utility.yul\":1272:1304 */\n slt\n /* \"#utility.yul\":1269:1388 */\n iszero\n tag_58\n jumpi\n /* \"#utility.yul\":1307:1386 */\n tag_59\n tag_30\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1269:1388 */\n tag_58:\n /* \"#utility.yul\":1427:1428 */\n 0x00\n /* \"#utility.yul\":1452:1505 */\n tag_60\n /* \"#utility.yul\":1497:1504 */\n dup5\n /* \"#utility.yul\":1488:1494 */\n dup3\n /* \"#utility.yul\":1477:1486 */\n dup6\n /* \"#utility.yul\":1473:1495 */\n add\n /* \"#utility.yul\":1452:1505 */\n tag_33\n jump\t// in\n tag_60:\n /* \"#utility.yul\":1442:1505 */\n swap2\n pop\n /* \"#utility.yul\":1398:1515 */\n pop\n /* \"#utility.yul\":1193:1522 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1528:1697 */\n tag_34:\n /* \"#utility.yul\":1612:1623 */\n 0x00\n /* \"#utility.yul\":1646:1652 */\n dup3\n /* \"#utility.yul\":1641:1644 */\n dup3\n /* \"#utility.yul\":1634:1653 */\n mstore\n /* \"#utility.yul\":1686:1690 */\n 0x20\n /* \"#utility.yul\":1681:1684 */\n dup3\n /* \"#utility.yul\":1677:1691 */\n add\n /* \"#utility.yul\":1662:1691 */\n swap1\n pop\n /* \"#utility.yul\":1528:1697 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1703:1872 */\n tag_35:\n /* \"#utility.yul\":1843:1864 */\n 0x43616c6c6572206973206e6f74206f776e657200000000000000000000000000\n /* \"#utility.yul\":1839:1840 */\n 0x00\n /* \"#utility.yul\":1831:1837 */\n dup3\n /* \"#utility.yul\":1827:1841 */\n add\n /* \"#utility.yul\":1820:1865 */\n mstore\n /* \"#utility.yul\":1703:1872 */\n pop\n jump\t// out\n /* \"#utility.yul\":1878:2244 */\n tag_36:\n /* \"#utility.yul\":2020:2023 */\n 0x00\n /* \"#utility.yul\":2041:2108 */\n tag_64\n /* \"#utility.yul\":2105:2107 */\n 0x13\n /* \"#utility.yul\":2100:2103 */\n dup4\n /* \"#utility.yul\":2041:2108 */\n tag_34\n jump\t// in\n tag_64:\n /* \"#utility.yul\":2034:2108 */\n swap2\n pop\n /* \"#utility.yul\":2117:2210 */\n tag_65\n /* \"#utility.yul\":2206:2209 */\n dup3\n /* \"#utility.yul\":2117:2210 */\n tag_35\n jump\t// in\n tag_65:\n /* \"#utility.yul\":2235:2237 */\n 0x20\n /* \"#utility.yul\":2230:2233 */\n dup3\n /* \"#utility.yul\":2226:2238 */\n add\n /* \"#utility.yul\":2219:2238 */\n swap1\n pop\n /* \"#utility.yul\":1878:2244 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2250:2669 */\n tag_18:\n /* \"#utility.yul\":2416:2420 */\n 0x00\n /* \"#utility.yul\":2454:2456 */\n 0x20\n /* \"#utility.yul\":2443:2452 */\n dup3\n /* \"#utility.yul\":2439:2457 */\n add\n /* \"#utility.yul\":2431:2457 */\n swap1\n pop\n /* \"#utility.yul\":2503:2512 */\n dup2\n /* \"#utility.yul\":2497:2501 */\n dup2\n /* \"#utility.yul\":2493:2513 */\n sub\n /* \"#utility.yul\":2489:2490 */\n 0x00\n /* \"#utility.yul\":2478:2487 */\n dup4\n /* \"#utility.yul\":2474:2491 */\n add\n /* \"#utility.yul\":2467:2514 */\n mstore\n /* \"#utility.yul\":2531:2662 */\n tag_67\n /* \"#utility.yul\":2657:2661 */\n dup2\n /* \"#utility.yul\":2531:2662 */\n tag_36\n jump\t// in\n tag_67:\n /* \"#utility.yul\":2523:2662 */\n swap1\n pop\n /* \"#utility.yul\":2250:2669 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2675:2774 */\n tag_37:\n /* \"#utility.yul\":2727:2733 */\n 0x00\n /* \"#utility.yul\":2761:2766 */\n dup2\n /* \"#utility.yul\":2755:2767 */\n mload\n /* \"#utility.yul\":2745:2767 */\n swap1\n pop\n /* \"#utility.yul\":2675:2774 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2780:3087 */\n tag_38:\n /* \"#utility.yul\":2848:2849 */\n 0x00\n /* \"#utility.yul\":2858:2971 */\n tag_70:\n /* \"#utility.yul\":2872:2878 */\n dup4\n /* \"#utility.yul\":2869:2870 */\n dup2\n /* \"#utility.yul\":2866:2879 */\n lt\n /* \"#utility.yul\":2858:2971 */\n iszero\n tag_72\n jumpi\n /* \"#utility.yul\":2957:2958 */\n dup1\n /* \"#utility.yul\":2952:2955 */\n dup3\n /* \"#utility.yul\":2948:2959 */\n add\n /* \"#utility.yul\":2942:2960 */\n mload\n /* \"#utility.yul\":2938:2939 */\n dup2\n /* \"#utility.yul\":2933:2936 */\n dup5\n /* \"#utility.yul\":2929:2940 */\n add\n /* \"#utility.yul\":2922:2961 */\n mstore\n /* \"#utility.yul\":2894:2896 */\n 0x20\n /* \"#utility.yul\":2891:2892 */\n dup2\n /* \"#utility.yul\":2887:2897 */\n add\n /* \"#utility.yul\":2882:2897 */\n swap1\n pop\n /* \"#utility.yul\":2858:2971 */\n jump(tag_70)\n tag_72:\n /* \"#utility.yul\":2989:2995 */\n dup4\n /* \"#utility.yul\":2986:2987 */\n dup2\n /* \"#utility.yul\":2983:2996 */\n gt\n /* \"#utility.yul\":2980:3081 */\n iszero\n tag_73\n jumpi\n /* \"#utility.yul\":3069:3070 */\n 0x00\n /* \"#utility.yul\":3060:3066 */\n dup5\n /* \"#utility.yul\":3055:3058 */\n dup5\n /* \"#utility.yul\":3051:3067 */\n add\n /* \"#utility.yul\":3044:3071 */\n mstore\n /* \"#utility.yul\":2980:3081 */\n tag_73:\n /* \"#utility.yul\":2829:3087 */\n pop\n /* \"#utility.yul\":2780:3087 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3093:3195 */\n tag_39:\n /* \"#utility.yul\":3134:3140 */\n 0x00\n /* \"#utility.yul\":3185:3187 */\n 0x1f\n /* \"#utility.yul\":3181:3188 */\n not\n /* \"#utility.yul\":3176:3178 */\n 0x1f\n /* \"#utility.yul\":3169:3174 */\n dup4\n /* \"#utility.yul\":3165:3179 */\n add\n /* \"#utility.yul\":3161:3189 */\n and\n /* \"#utility.yul\":3151:3189 */\n swap1\n pop\n /* \"#utility.yul\":3093:3195 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3201:3565 */\n tag_40:\n /* \"#utility.yul\":3289:3292 */\n 0x00\n /* \"#utility.yul\":3317:3356 */\n tag_76\n /* \"#utility.yul\":3350:3355 */\n dup3\n /* \"#utility.yul\":3317:3356 */\n tag_37\n jump\t// in\n tag_76:\n /* \"#utility.yul\":3372:3443 */\n tag_77\n /* \"#utility.yul\":3436:3442 */\n dup2\n /* \"#utility.yul\":3431:3434 */\n dup6\n /* \"#utility.yul\":3372:3443 */\n tag_34\n jump\t// in\n tag_77:\n /* \"#utility.yul\":3365:3443 */\n swap4\n pop\n /* \"#utility.yul\":3452:3504 */\n tag_78\n /* \"#utility.yul\":3497:3503 */\n dup2\n /* \"#utility.yul\":3492:3495 */\n dup6\n /* \"#utility.yul\":3485:3489 */\n 0x20\n /* \"#utility.yul\":3478:3483 */\n dup7\n /* \"#utility.yul\":3474:3490 */\n add\n /* \"#utility.yul\":3452:3504 */\n tag_38\n jump\t// in\n tag_78:\n /* \"#utility.yul\":3529:3558 */\n tag_79\n /* \"#utility.yul\":3551:3557 */\n dup2\n /* \"#utility.yul\":3529:3558 */\n tag_39\n jump\t// in\n tag_79:\n /* \"#utility.yul\":3524:3527 */\n dup5\n /* \"#utility.yul\":3520:3559 */\n add\n /* \"#utility.yul\":3513:3559 */\n swap2\n pop\n /* \"#utility.yul\":3293:3565 */\n pop\n /* \"#utility.yul\":3201:3565 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3571:3994 */\n tag_23:\n /* \"#utility.yul\":3712:3716 */\n 0x00\n /* \"#utility.yul\":3750:3752 */\n 0x40\n /* \"#utility.yul\":3739:3748 */\n dup3\n /* \"#utility.yul\":3735:3753 */\n add\n /* \"#utility.yul\":3727:3753 */\n swap1\n pop\n /* \"#utility.yul\":3799:3808 */\n dup2\n /* \"#utility.yul\":3793:3797 */\n dup2\n /* \"#utility.yul\":3789:3809 */\n sub\n /* \"#utility.yul\":3785:3786 */\n 0x00\n /* \"#utility.yul\":3774:3783 */\n dup4\n /* \"#utility.yul\":3770:3787 */\n add\n /* \"#utility.yul\":3763:3810 */\n mstore\n /* \"#utility.yul\":3827:3905 */\n tag_81\n /* \"#utility.yul\":3900:3904 */\n dup2\n /* \"#utility.yul\":3891:3897 */\n dup6\n /* \"#utility.yul\":3827:3905 */\n tag_40\n jump\t// in\n tag_81:\n /* \"#utility.yul\":3819:3905 */\n swap1\n pop\n /* \"#utility.yul\":3915:3987 */\n tag_82\n /* \"#utility.yul\":3983:3985 */\n 0x20\n /* \"#utility.yul\":3972:3981 */\n dup4\n /* \"#utility.yul\":3968:3986 */\n add\n /* \"#utility.yul\":3959:3965 */\n dup5\n /* \"#utility.yul\":3915:3987 */\n tag_28\n jump\t// in\n tag_82:\n /* \"#utility.yul\":3571:3994 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220e6da7ac5277dfc1502d5e2448400f616ad752402247f2d0b6911a5b31128202064736f6c634300080e0033\n}\n",
"bytecode": {
"functionDebugData": {
"@_49": {
"entryPoint": null,
"id": 49,
"parameterSlots": 0,
"returnSlots": 0
},
"@_sendLogPayload_101": {
"entryPoint": 444,
"id": 101,
"parameterSlots": 1,
"returnSlots": 0
},
"@log_836": {
"entryPoint": 282,
"id": 836,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 688,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 581,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 703,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 485,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 496,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 670,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 638,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 513,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 564,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1862:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "66:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "77:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "93:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "87:5:2"
},
"nodeType": "YulFunctionCall",
"src": "87:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "77:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "49:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "59:6:2",
"type": ""
}
],
"src": "7:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "208:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "225:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "230:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "218:6:2"
},
"nodeType": "YulFunctionCall",
"src": "218:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "218:19:2"
},
{
"nodeType": "YulAssignment",
"src": "246:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "265:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "270:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "261:3:2"
},
"nodeType": "YulFunctionCall",
"src": "261:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "246:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "180:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "185:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "196:11:2",
"type": ""
}
],
"src": "112:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "336:258:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "346:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "355:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "350:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "415:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "440:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "445:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "436:3:2"
},
"nodeType": "YulFunctionCall",
"src": "436:11:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "459:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "464:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "455:3:2"
},
"nodeType": "YulFunctionCall",
"src": "455:11:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "449:5:2"
},
"nodeType": "YulFunctionCall",
"src": "449:18:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "429:6:2"
},
"nodeType": "YulFunctionCall",
"src": "429:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "429:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "376:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "379:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "373:2:2"
},
"nodeType": "YulFunctionCall",
"src": "373:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "387:19:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:15:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "398:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "394:3:2"
},
"nodeType": "YulFunctionCall",
"src": "394:10:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "389:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "369:3:2",
"statements": []
},
"src": "365:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "512:76:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "562:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "567:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "558:3:2"
},
"nodeType": "YulFunctionCall",
"src": "558:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "551:6:2"
},
"nodeType": "YulFunctionCall",
"src": "551:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "551:27:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "493:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "496:6:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "490:2:2"
},
"nodeType": "YulFunctionCall",
"src": "490:13:2"
},
"nodeType": "YulIf",
"src": "487:101:2"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "318:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "323:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "328:6:2",
"type": ""
}
],
"src": "287:307:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "648:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "658:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "676:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "683:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "672:3:2"
},
"nodeType": "YulFunctionCall",
"src": "672:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "692:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "688:3:2"
},
"nodeType": "YulFunctionCall",
"src": "688:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "668:3:2"
},
"nodeType": "YulFunctionCall",
"src": "668:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "658:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "631:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "641:6:2",
"type": ""
}
],
"src": "600:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "800:272:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "810:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "857:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "824:32:2"
},
"nodeType": "YulFunctionCall",
"src": "824:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "814:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "872:78:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "938:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "943:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "879:58:2"
},
"nodeType": "YulFunctionCall",
"src": "879:71:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "872:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "985:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "992:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "981:3:2"
},
"nodeType": "YulFunctionCall",
"src": "981:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "999:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1004:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "959:21:2"
},
"nodeType": "YulFunctionCall",
"src": "959:52:2"
},
"nodeType": "YulExpressionStatement",
"src": "959:52:2"
},
{
"nodeType": "YulAssignment",
"src": "1020:46:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1031:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1058:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1036:21:2"
},
"nodeType": "YulFunctionCall",
"src": "1036:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1027:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1027:39:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1020:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "781:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "788:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "796:3:2",
"type": ""
}
],
"src": "708:364:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1123:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1133:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1148:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1155:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1144:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1144:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1133:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1105:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1115:7:2",
"type": ""
}
],
"src": "1078:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1255:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1265:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1294:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1276:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1276:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1265:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1237:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1247:7:2",
"type": ""
}
],
"src": "1210:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1377:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1394:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1417:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1399:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1399:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1387:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1387:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "1387:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1365:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1372:3:2",
"type": ""
}
],
"src": "1312:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1582:277:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1592:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1604:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1615:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1600:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1600:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1592:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1639:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1650:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1635:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1635:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1658:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1664:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1654:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1654:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1628:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1628:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "1628:47:2"
},
{
"nodeType": "YulAssignment",
"src": "1684:86:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1756:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1765:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1692:63:2"
},
"nodeType": "YulFunctionCall",
"src": "1692:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1684:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1824:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1837:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1848:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1833:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1833:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "1780:43:2"
},
"nodeType": "YulFunctionCall",
"src": "1780:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "1780:72:2"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1546:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1558:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1566:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1577:4:2",
"type": ""
}
],
"src": "1436:423:2"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061005a6040518060400160405280601b81526020017f4f776e657220636f6e7472616374206465706c6f7965642062793a00000000008152503361011a60201b6101e91760201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a36102ef565b6101b882826040516024016101309291906102bf565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506101bc60201b60201c565b5050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561021f578082015181840152602081019050610204565b8381111561022e576000848401525b50505050565b6000601f19601f8301169050919050565b6000610250826101e5565b61025a81856101f0565b935061026a818560208601610201565b61027381610234565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102a98261027e565b9050919050565b6102b98161029e565b82525050565b600060408201905081810360008301526102d98185610245565b90506102e860208301846102b0565b9392505050565b6104d3806102fe6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b60405161005091906102ef565b60405180910390f35b610073600480360381019061006e919061033b565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610123906103c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61028182826040516024016101ff92919061046d565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610285565b5050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102d9826102ae565b9050919050565b6102e9816102ce565b82525050565b600060208201905061030460008301846102e0565b92915050565b600080fd5b610318816102ce565b811461032357600080fd5b50565b6000813590506103358161030f565b92915050565b6000602082840312156103515761035061030a565b5b600061035f84828501610326565b91505092915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b60006103af601383610368565b91506103ba82610379565b602082019050919050565b600060208201905081810360008301526103de816103a2565b9050919050565b600081519050919050565b60005b8381101561040e5780820151818401526020810190506103f3565b8381111561041d576000848401525b50505050565b6000601f19601f8301169050919050565b600061043f826103e5565b6104498185610368565b93506104598185602086016103f0565b61046281610423565b840191505092915050565b600060408201905081810360008301526104878185610434565b905061049660208301846102e0565b939250505056fea2646970667358221220e6da7ac5277dfc1502d5e2448400f616ad752402247f2d0b6911a5b31128202064736f6c634300080e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4F776E657220636F6E7472616374206465706C6F7965642062793A0000000000 DUP2 MSTORE POP CALLER PUSH2 0x11A PUSH1 0x20 SHL PUSH2 0x1E9 OR PUSH1 0x20 SHR JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x2EF JUMP JUMPDEST PUSH2 0x1B8 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x130 SWAP3 SWAP2 SWAP1 PUSH2 0x2BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1BC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 DUP5 DUP4 DUP6 GAS STATICCALL POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x204 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x22E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x250 DUP3 PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x25A DUP2 DUP6 PUSH2 0x1F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x26A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x201 JUMP JUMPDEST PUSH2 0x273 DUP2 PUSH2 0x234 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9 DUP3 PUSH2 0x27E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B9 DUP2 PUSH2 0x29E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2D9 DUP2 DUP6 PUSH2 0x245 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2B0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x4D3 DUP1 PUSH2 0x2FE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x281 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1FF SWAP3 SWAP2 SWAP1 PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x285 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 DUP5 DUP4 DUP6 GAS STATICCALL POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D9 DUP3 PUSH2 0x2AE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E9 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x304 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x318 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP2 EQ PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x335 DUP2 PUSH2 0x30F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x351 JUMPI PUSH2 0x350 PUSH2 0x30A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35F DUP5 DUP3 DUP6 ADD PUSH2 0x326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AF PUSH1 0x13 DUP4 PUSH2 0x368 JUMP JUMPDEST SWAP2 POP PUSH2 0x3BA DUP3 PUSH2 0x379 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DE DUP2 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x40E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3F3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43F DUP3 PUSH2 0x3E5 JUMP JUMPDEST PUSH2 0x449 DUP2 DUP6 PUSH2 0x368 JUMP JUMPDEST SWAP4 POP PUSH2 0x459 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3F0 JUMP JUMPDEST PUSH2 0x462 DUP2 PUSH2 0x423 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x487 DUP2 DUP6 PUSH2 0x434 JUMP JUMPDEST SWAP1 POP PUSH2 0x496 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0xDA PUSH27 0xC5277DFC1502D5E2448400F616AD752402247F2D0B6911A5B31128 KECCAK256 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD 0xE STOP CALLER ",
"sourceMap": "152:1413:0:-:0;;;942:234;;;;;;;;;;966:54;;;;;;;;;;;;;;;;;;1009:10;966:11;;;;;:54;;:::i;:::-;1038:10;1030:5;;:18;;;;;;;;;;;;;;;;;;1163:5;;;;;;;;;;1142:27;;1159:1;1142:27;;;;;;;;;;;;152:1413;;6298:136:1;6359:71;6422:2;6426;6375:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6359:15;;;:71;;:::i;:::-;6298:136;;:::o;176:288::-;240:21;264:7;:14;240:38;;282:22;129:42;282:40;;373:2;364:7;360:16;455:1;452;437:13;423:12;407:14;400:5;389:68;335:126;;;;176:288;:::o;7:99:2:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:126::-;1115:7;1155:42;1148:5;1144:54;1133:65;;1078:126;;;:::o;1210:96::-;1247:7;1276:24;1294:5;1276:24;:::i;:::-;1265:35;;1210:96;;;:::o;1312:118::-;1399:24;1417:5;1399:24;:::i;:::-;1394:3;1387:37;1312:118;;:::o;1436:423::-;1577:4;1615:2;1604:9;1600:18;1592:26;;1664:9;1658:4;1654:20;1650:1;1639:9;1635:17;1628:47;1692:78;1765:4;1756:6;1692:78;:::i;:::-;1684:86;;1780:72;1848:2;1837:9;1833:18;1824:6;1780:72;:::i;:::-;1436:423;;;;;:::o;152:1413:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_sendLogPayload_101": {
"entryPoint": 645,
"id": 101,
"parameterSlots": 1,
"returnSlots": 0
},
"@changeOwner_67": {
"entryPoint": 158,
"id": 67,
"parameterSlots": 1,
"returnSlots": 0
},
"@getOwner_76": {
"entryPoint": 117,
"id": 76,
"parameterSlots": 0,
"returnSlots": 1
},
"@log_836": {
"entryPoint": 489,
"id": 836,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 806,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 827,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 736,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1076,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 930,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 751,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 1133,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 965,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 997,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 872,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 718,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 686,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1008,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 778,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1059,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d": {
"entryPoint": 889,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 783,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3997:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "77:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "84:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "73:3:2"
},
"nodeType": "YulFunctionCall",
"src": "73:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:2",
"type": ""
}
],
"src": "7:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "184:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "194:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "223:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "205:17:2"
},
"nodeType": "YulFunctionCall",
"src": "205:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "194:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "166:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "176:7:2",
"type": ""
}
],
"src": "139:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "323:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "346:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "328:17:2"
},
"nodeType": "YulFunctionCall",
"src": "328:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "316:6:2"
},
"nodeType": "YulFunctionCall",
"src": "316:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "316:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "294:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "301:3:2",
"type": ""
}
],
"src": "241:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "463:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "473:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "485:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "496:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "481:3:2"
},
"nodeType": "YulFunctionCall",
"src": "481:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "473:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "553:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "566:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "562:3:2"
},
"nodeType": "YulFunctionCall",
"src": "562:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "509:43:2"
},
"nodeType": "YulFunctionCall",
"src": "509:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "509:71:2"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "435:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "447:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "458:4:2",
"type": ""
}
],
"src": "365:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "633:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "643:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "659:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "653:5:2"
},
"nodeType": "YulFunctionCall",
"src": "653:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "643:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "626:6:2",
"type": ""
}
],
"src": "593:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "763:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "780:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "783:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "773:6:2"
},
"nodeType": "YulFunctionCall",
"src": "773:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "773:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "674:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "886:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "903:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "906:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "896:6:2"
},
"nodeType": "YulFunctionCall",
"src": "896:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "896:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "797:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "963:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1020:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1029:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1032:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1022:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1022:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "1022:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "986:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1011:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "993:17:2"
},
"nodeType": "YulFunctionCall",
"src": "993:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "983:2:2"
},
"nodeType": "YulFunctionCall",
"src": "983:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "976:6:2"
},
"nodeType": "YulFunctionCall",
"src": "976:43:2"
},
"nodeType": "YulIf",
"src": "973:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "956:5:2",
"type": ""
}
],
"src": "920:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1100:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1110:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1132:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1119:12:2"
},
"nodeType": "YulFunctionCall",
"src": "1119:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1110:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1175:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "1148:26:2"
},
"nodeType": "YulFunctionCall",
"src": "1148:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "1148:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1078:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1086:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1094:5:2",
"type": ""
}
],
"src": "1048:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1259:263:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1305:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1307:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1307:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1307:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1280:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1289:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1276:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1276:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1301:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1272:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1272:32:2"
},
"nodeType": "YulIf",
"src": "1269:119:2"
},
{
"nodeType": "YulBlock",
"src": "1398:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1413:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1427:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1417:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1442:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1477:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1488:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1473:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1473:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1497:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1452:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1452:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1442:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1229:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1240:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1252:6:2",
"type": ""
}
],
"src": "1193:329:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1624:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1641:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1646:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1634:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1634:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "1634:19:2"
},
{
"nodeType": "YulAssignment",
"src": "1662:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1681:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1686:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1677:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1677:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1662:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1596:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1601:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1612:11:2",
"type": ""
}
],
"src": "1528:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1809:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1831:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1839:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1827:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1827:14:2"
},
{
"hexValue": "43616c6c6572206973206e6f74206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1843:21:2",
"type": "",
"value": "Caller is not owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1820:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1820:45:2"
},
"nodeType": "YulExpressionStatement",
"src": "1820:45:2"
}
]
},
"name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1801:6:2",
"type": ""
}
],
"src": "1703:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2024:220:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2034:74:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2100:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2105:2:2",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2041:58:2"
},
"nodeType": "YulFunctionCall",
"src": "2041:67:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2034:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2206:3:2"
}
],
"functionName": {
"name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"nodeType": "YulIdentifier",
"src": "2117:88:2"
},
"nodeType": "YulFunctionCall",
"src": "2117:93:2"
},
"nodeType": "YulExpressionStatement",
"src": "2117:93:2"
},
{
"nodeType": "YulAssignment",
"src": "2219:19:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2230:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2235:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2226:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2226:12:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2219:3:2"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2012:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2020:3:2",
"type": ""
}
],
"src": "1878:366:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2421:248:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2431:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2443:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2454:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2439:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2439:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2431:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2478:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2489:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2474:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2474:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2497:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2503:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2493:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2493:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2467:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2467:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "2467:47:2"
},
{
"nodeType": "YulAssignment",
"src": "2523:139:2",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2657:4:2"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2531:124:2"
},
"nodeType": "YulFunctionCall",
"src": "2531:131:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2523:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2401:9:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2416:4:2",
"type": ""
}
],
"src": "2250:419:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2734:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2745:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2761:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2755:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2755:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2745:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2717:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2727:6:2",
"type": ""
}
],
"src": "2675:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2829:258:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2839:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2848:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2843:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2908:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2933:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2938:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2929:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2929:11:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2952:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2957:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2948:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2948:11:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2942:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2942:18:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2922:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2922:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "2922:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2869:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2872:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2866:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2866:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2880:19:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2882:15:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2891:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2894:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2887:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2887:10:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2882:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2862:3:2",
"statements": []
},
"src": "2858:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3005:76:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "3055:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3060:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3051:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3051:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3069:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3044:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3044:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "3044:27:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2986:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2989:6:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2983:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2983:13:2"
},
"nodeType": "YulIf",
"src": "2980:101:2"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2811:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2816:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2821:6:2",
"type": ""
}
],
"src": "2780:307:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3141:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3151:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3169:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3176:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3165:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3165:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3185:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3181:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3181:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3161:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3161:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3151:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3124:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3134:6:2",
"type": ""
}
],
"src": "3093:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3293:272:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3303:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3350:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3317:32:2"
},
"nodeType": "YulFunctionCall",
"src": "3317:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3307:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3365:78:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3431:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3436:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3372:58:2"
},
"nodeType": "YulFunctionCall",
"src": "3372:71:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3365:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3478:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3485:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3474:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3474:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3492:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3497:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "3452:21:2"
},
"nodeType": "YulFunctionCall",
"src": "3452:52:2"
},
"nodeType": "YulExpressionStatement",
"src": "3452:52:2"
},
{
"nodeType": "YulAssignment",
"src": "3513:46:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3524:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3551:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3529:21:2"
},
"nodeType": "YulFunctionCall",
"src": "3529:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3520:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3520:39:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3513:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3274:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3281:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3289:3:2",
"type": ""
}
],
"src": "3201:364:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3717:277:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3727:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3739:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3750:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3735:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3735:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3727:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3774:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3785:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3770:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3770:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3793:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3799:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3789:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3789:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3763:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3763:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "3763:47:2"
},
{
"nodeType": "YulAssignment",
"src": "3819:86:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3891:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3900:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3827:63:2"
},
"nodeType": "YulFunctionCall",
"src": "3827:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3819:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3959:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3972:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3983:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3968:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3968:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3915:43:2"
},
"nodeType": "YulFunctionCall",
"src": "3915:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "3915:72:2"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3681:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3693:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3701:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3712:4:2",
"type": ""
}
],
"src": "3571:423:2"
}
]
},
"contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(memPtr) {\n\n mstore(add(memPtr, 0), \"Caller is not owner\")\n\n }\n\n function abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b60405161005091906102ef565b60405180910390f35b610073600480360381019061006e919061033b565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610123906103c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61028182826040516024016101ff92919061046d565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610285565b5050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102d9826102ae565b9050919050565b6102e9816102ce565b82525050565b600060208201905061030460008301846102e0565b92915050565b600080fd5b610318816102ce565b811461032357600080fd5b50565b6000813590506103358161030f565b92915050565b6000602082840312156103515761035061030a565b5b600061035f84828501610326565b91505092915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b60006103af601383610368565b91506103ba82610379565b602082019050919050565b600060208201905081810360008301526103de816103a2565b9050919050565b600081519050919050565b60005b8381101561040e5780820151818401526020810190506103f3565b8381111561041d576000848401525b50505050565b6000601f19601f8301169050919050565b600061043f826103e5565b6104498185610368565b93506104598185602086016103f0565b61046281610423565b840191505092915050565b600060408201905081810360008301526104878185610434565b905061049660208301846102e0565b939250505056fea2646970667358221220e6da7ac5277dfc1502d5e2448400f616ad752402247f2d0b6911a5b31128202064736f6c634300080e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x281 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1FF SWAP3 SWAP2 SWAP1 PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x285 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 DUP5 DUP4 DUP6 GAS STATICCALL POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D9 DUP3 PUSH2 0x2AE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E9 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x304 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x318 DUP2 PUSH2 0x2CE JUMP JUMPDEST DUP2 EQ PUSH2 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x335 DUP2 PUSH2 0x30F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x351 JUMPI PUSH2 0x350 PUSH2 0x30A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35F DUP5 DUP3 DUP6 ADD PUSH2 0x326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AF PUSH1 0x13 DUP4 PUSH2 0x368 JUMP JUMPDEST SWAP2 POP PUSH2 0x3BA DUP3 PUSH2 0x379 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3DE DUP2 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x40E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3F3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43F DUP3 PUSH2 0x3E5 JUMP JUMPDEST PUSH2 0x449 DUP2 DUP6 PUSH2 0x368 JUMP JUMPDEST SWAP4 POP PUSH2 0x459 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3F0 JUMP JUMPDEST PUSH2 0x462 DUP2 PUSH2 0x423 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x487 DUP2 DUP6 PUSH2 0x434 JUMP JUMPDEST SWAP1 POP PUSH2 0x496 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0xDA PUSH27 0xC5277DFC1502D5E2448400F616AD752402247F2D0B6911A5B31128 KECCAK256 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD 0xE STOP CALLER ",
"sourceMap": "152:1413:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1482:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1267:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1482:81;1525:7;1551:5;;;;;;;;;;;1544:12;;1482:81;:::o;1267:127::-;830:5;;;;;;;;;;816:19;;:10;:19;;;808:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:8:::1;1336:25;;1345:5;::::0;::::1;;;;;;;;1336:25;;;;;;;;;;;;1379:8;1371:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1267:127:::0;:::o;6298:136:1:-;6359:71;6422:2;6426;6375:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6359:15;:71::i;:::-;6298:136;;:::o;176:288::-;240:21;264:7;:14;240:38;;282:22;129:42;282:40;;373:2;364:7;360:16;455:1;452;437:13;423:12;407:14;400:5;389:68;335:126;;;;176:288;:::o;7:126:2:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:169::-;1612:11;1646:6;1641:3;1634:19;1686:4;1681:3;1677:14;1662:29;;1528:169;;;;:::o;1703:::-;1843:21;1839:1;1831:6;1827:14;1820:45;1703:169;:::o;1878:366::-;2020:3;2041:67;2105:2;2100:3;2041:67;:::i;:::-;2034:74;;2117:93;2206:3;2117:93;:::i;:::-;2235:2;2230:3;2226:12;2219:19;;1878:366;;;:::o;2250:419::-;2416:4;2454:2;2443:9;2439:18;2431:26;;2503:9;2497:4;2493:20;2489:1;2478:9;2474:17;2467:47;2531:131;2657:4;2531:131;:::i;:::-;2523:139;;2250:419;;;:::o;2675:99::-;2727:6;2761:5;2755:12;2745:22;;2675:99;;;:::o;2780:307::-;2848:1;2858:113;2872:6;2869:1;2866:13;2858:113;;;2957:1;2952:3;2948:11;2942:18;2938:1;2933:3;2929:11;2922:39;2894:2;2891:1;2887:10;2882:15;;2858:113;;;2989:6;2986:1;2983:13;2980:101;;;3069:1;3060:6;3055:3;3051:16;3044:27;2980:101;2829:258;2780:307;;;:::o;3093:102::-;3134:6;3185:2;3181:7;3176:2;3169:5;3165:14;3161:28;3151:38;;3093:102;;;:::o;3201:364::-;3289:3;3317:39;3350:5;3317:39;:::i;:::-;3372:71;3436:6;3431:3;3372:71;:::i;:::-;3365:78;;3452:52;3497:6;3492:3;3485:4;3478:5;3474:16;3452:52;:::i;:::-;3529:29;3551:6;3529:29;:::i;:::-;3524:3;3520:39;3513:46;;3293:272;3201:364;;;;:::o;3571:423::-;3712:4;3750:2;3739:9;3735:18;3727:26;;3799:9;3793:4;3789:20;3785:1;3774:9;3770:17;3763:47;3827:78;3900:4;3891:6;3827:78;:::i;:::-;3819:86;;3915:72;3983:2;3972:9;3968:18;3959:6;3915:72;:::i;:::-;3571:423;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "247000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"changeOwner(address)": "30567",
"getOwner()": "2500"
}
},
"legacyAssembly": {
".code": [
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 152,
"end": 1565,
"name": "MSTORE",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "DUP1",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "ISZERO",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 942,
"end": 1176,
"name": "JUMPI",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 942,
"end": 1176,
"name": "DUP1",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "REVERT",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 942,
"end": 1176,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 942,
"end": 1176,
"name": "POP",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 966,
"end": 1020,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 966,
"end": 1020,
"name": "MLOAD",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "DUP1",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 966,
"end": 1020,
"name": "ADD",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 966,
"end": 1020,
"name": "MSTORE",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "DUP1",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "PUSH",
"source": 0,
"value": "1B"
},
{
"begin": 966,
"end": 1020,
"name": "DUP2",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "MSTORE",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 966,
"end": 1020,
"name": "ADD",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "PUSH",
"source": 0,
"value": "4F776E657220636F6E7472616374206465706C6F7965642062793A0000000000"
},
{
"begin": 966,
"end": 1020,
"name": "DUP2",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "MSTORE",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "POP",
"source": 0
},
{
"begin": 1009,
"end": 1019,
"name": "CALLER",
"source": 0
},
{
"begin": 966,
"end": 977,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 966,
"end": 977,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 966,
"end": 977,
"name": "SHL",
"source": 0
},
{
"begin": 966,
"end": 977,
"name": "PUSH [tag]",
"source": 0,
"value": "18446744073709551629"
},
{
"begin": 966,
"end": 977,
"name": "OR",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 966,
"end": 1020,
"name": "SHR",
"source": 0
},
{
"begin": 966,
"end": 1020,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 966,
"end": 1020,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 966,
"end": 1020,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1038,
"end": 1048,
"name": "CALLER",
"source": 0
},
{
"begin": 1030,
"end": 1035,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1030,
"end": 1035,
"name": "DUP1",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 1030,
"end": 1048,
"name": "EXP",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "DUP2",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "SLOAD",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "DUP2",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1030,
"end": 1048,
"name": "MUL",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "NOT",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "AND",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "SWAP1",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "DUP4",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1030,
"end": 1048,
"name": "AND",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "MUL",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "OR",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "SWAP1",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "SSTORE",
"source": 0
},
{
"begin": 1030,
"end": 1048,
"name": "POP",
"source": 0
},
{
"begin": 1163,
"end": 1168,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1163,
"end": 1168,
"name": "DUP1",
"source": 0
},
{
"begin": 1163,
"end": 1168,
"name": "SLOAD",
"source": 0
},
{
"begin": 1163,
"end": 1168,
"name": "SWAP1",
"source": 0
},
{
"begin": 1163,
"end": 1168,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 1163,
"end": 1168,
"name": "EXP",
"source": 0
},
{
"begin": 1163,
"end": 1168,
"name": "SWAP1",
"source": 0
},
{
"begin": 1163,
"end": 1168,
"name": "DIV",
"source": 0
},
{
"begin": 1163,
"end": 1168,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1163,
"end": 1168,
"name": "AND",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1142,
"end": 1169,
"name": "AND",
"source": 0
},
{
"begin": 1159,
"end": 1160,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1142,
"end": 1169,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1142,
"end": 1169,
"name": "AND",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "PUSH",
"source": 0,
"value": "342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735"
},
{
"begin": 1142,
"end": 1169,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1142,
"end": 1169,
"name": "MLOAD",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1142,
"end": 1169,
"name": "MLOAD",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "DUP1",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "SWAP2",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "SUB",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "SWAP1",
"source": 0
},
{
"begin": 1142,
"end": 1169,
"name": "LOG3",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 152,
"end": 1565,
"name": "JUMP",
"source": 0
},
{
"begin": 6298,
"end": 6434,
"name": "tag",
"source": 1,
"value": "5"
},
{
"begin": 6298,
"end": 6434,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6359,
"end": 6430,
"name": "PUSH [tag]",
"source": 1,
"value": "8"
},
{
"begin": 6422,
"end": 6424,
"name": "DUP3",
"source": 1
},
{
"begin": 6426,
"end": 6428,
"name": "DUP3",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 6375,
"end": 6429,
"name": "MLOAD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 6375,
"end": 6429,
"name": "ADD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH [tag]",
"source": 1,
"value": "9"
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP3",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP1",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH [tag]",
"source": 1,
"value": "10"
},
{
"begin": 6375,
"end": 6429,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 6375,
"end": 6429,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 6375,
"end": 6429,
"name": "MLOAD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 6375,
"end": 6429,
"name": "DUP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SUB",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SUB",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "MSTORE",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP1",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 6375,
"end": 6429,
"name": "MSTORE",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "319AF33300000000000000000000000000000000000000000000000000000000"
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 6375,
"end": 6429,
"name": "NOT",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "AND",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 6375,
"end": 6429,
"name": "DUP3",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "ADD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP1",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "MLOAD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "AND",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "OR",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "MSTORE",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6359,
"end": 6374,
"name": "PUSH [tag]",
"source": 1,
"value": "11"
},
{
"begin": 6359,
"end": 6374,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 6359,
"end": 6374,
"name": "SHL",
"source": 1
},
{
"begin": 6359,
"end": 6430,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 6359,
"end": 6430,
"name": "SHR",
"source": 1
},
{
"begin": 6359,
"end": 6430,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 6359,
"end": 6430,
"name": "tag",
"source": 1,
"value": "8"
},
{
"begin": 6359,
"end": 6430,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6298,
"end": 6434,
"name": "POP",
"source": 1
},
{
"begin": 6298,
"end": 6434,
"name": "POP",
"source": 1
},
{
"begin": 6298,
"end": 6434,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 176,
"end": 464,
"name": "tag",
"source": 1,
"value": "11"
},
{
"begin": 176,
"end": 464,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 240,
"end": 261,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 264,
"end": 271,
"name": "DUP2",
"source": 1
},
{
"begin": 264,
"end": 278,
"name": "MLOAD",
"source": 1
},
{
"begin": 240,
"end": 278,
"name": "SWAP1",
"source": 1
},
{
"begin": 240,
"end": 278,
"name": "POP",
"source": 1
},
{
"begin": 282,
"end": 304,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 129,
"end": 171,
"name": "PUSH",
"source": 1,
"value": "636F6E736F6C652E6C6F67"
},
{
"begin": 282,
"end": 322,
"name": "SWAP1",
"source": 1
},
{
"begin": 282,
"end": 322,
"name": "POP",
"source": 1
},
{
"begin": 373,
"end": 375,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 364,
"end": 371,
"name": "DUP4",
"source": 1
},
{
"begin": 360,
"end": 376,
"name": "ADD",
"source": 1
},
{
"begin": 455,
"end": 456,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 452,
"end": 453,
"name": "DUP1",
"source": 1
},
{
"begin": 437,
"end": 450,
"name": "DUP5",
"source": 1
},
{
"begin": 423,
"end": 435,
"name": "DUP4",
"source": 1
},
{
"begin": 407,
"end": 421,
"name": "DUP6",
"source": 1
},
{
"begin": 400,
"end": 405,
"name": "GAS",
"source": 1
},
{
"begin": 389,
"end": 457,
"name": "STATICCALL",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 176,
"end": 464,
"name": "POP",
"source": 1
},
{
"begin": 176,
"end": 464,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 7,
"end": 106,
"name": "tag",
"source": 2,
"value": "13"
},
{
"begin": 7,
"end": 106,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 59,
"end": 65,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 93,
"end": 98,
"name": "DUP2",
"source": 2
},
{
"begin": 87,
"end": 99,
"name": "MLOAD",
"source": 2
},
{
"begin": 77,
"end": 99,
"name": "SWAP1",
"source": 2
},
{
"begin": 77,
"end": 99,
"name": "POP",
"source": 2
},
{
"begin": 7,
"end": 106,
"name": "SWAP2",
"source": 2
},
{
"begin": 7,
"end": 106,
"name": "SWAP1",
"source": 2
},
{
"begin": 7,
"end": 106,
"name": "POP",
"source": 2
},
{
"begin": 7,
"end": 106,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 112,
"end": 281,
"name": "tag",
"source": 2,
"value": "14"
},
{
"begin": 112,
"end": 281,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 196,
"end": 207,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 230,
"end": 236,
"name": "DUP3",
"source": 2
},
{
"begin": 225,
"end": 228,
"name": "DUP3",
"source": 2
},
{
"begin": 218,
"end": 237,
"name": "MSTORE",
"source": 2
},
{
"begin": 270,
"end": 274,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 265,
"end": 268,
"name": "DUP3",
"source": 2
},
{
"begin": 261,
"end": 275,
"name": "ADD",
"source": 2
},
{
"begin": 246,
"end": 275,
"name": "SWAP1",
"source": 2
},
{
"begin": 246,
"end": 275,
"name": "POP",
"source": 2
},
{
"begin": 112,
"end": 281,
"name": "SWAP3",
"source": 2
},
{
"begin": 112,
"end": 281,
"name": "SWAP2",
"source": 2
},
{
"begin": 112,
"end": 281,
"name": "POP",
"source": 2
},
{
"begin": 112,
"end": 281,
"name": "POP",
"source": 2
},
{
"begin": 112,
"end": 281,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 287,
"end": 594,
"name": "tag",
"source": 2,
"value": "15"
},
{
"begin": 287,
"end": 594,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 355,
"end": 356,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 365,
"end": 478,
"name": "tag",
"source": 2,
"value": "25"
},
{
"begin": 365,
"end": 478,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 379,
"end": 385,
"name": "DUP4",
"source": 2
},
{
"begin": 376,
"end": 377,
"name": "DUP2",
"source": 2
},
{
"begin": 373,
"end": 386,
"name": "LT",
"source": 2
},
{
"begin": 365,
"end": 478,
"name": "ISZERO",
"source": 2
},
{
"begin": 365,
"end": 478,
"name": "PUSH [tag]",
"source": 2,
"value": "27"
},
{
"begin": 365,
"end": 478,
"name": "JUMPI",
"source": 2
},
{
"begin": 464,
"end": 465,
"name": "DUP1",
"source": 2
},
{
"begin": 459,
"end": 462,
"name": "DUP3",
"source": 2
},
{
"begin": 455,
"end": 466,
"name": "ADD",
"source": 2
},
{
"begin": 449,
"end": 467,
"name": "MLOAD",
"source": 2
},
{
"begin": 445,
"end": 446,
"name": "DUP2",
"source": 2
},
{
"begin": 440,
"end": 443,
"name": "DUP5",
"source": 2
},
{
"begin": 436,
"end": 447,
"name": "ADD",
"source": 2
},
{
"begin": 429,
"end": 468,
"name": "MSTORE",
"source": 2
},
{
"begin": 401,
"end": 403,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 398,
"end": 399,
"name": "DUP2",
"source": 2
},
{
"begin": 394,
"end": 404,
"name": "ADD",
"source": 2
},
{
"begin": 389,
"end": 404,
"name": "SWAP1",
"source": 2
},
{
"begin": 389,
"end": 404,
"name": "POP",
"source": 2
},
{
"begin": 365,
"end": 478,
"name": "PUSH [tag]",
"source": 2,
"value": "25"
},
{
"begin": 365,
"end": 478,
"name": "JUMP",
"source": 2
},
{
"begin": 365,
"end": 478,
"name": "tag",
"source": 2,
"value": "27"
},
{
"begin": 365,
"end": 478,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 496,
"end": 502,
"name": "DUP4",
"source": 2
},
{
"begin": 493,
"end": 494,
"name": "DUP2",
"source": 2
},
{
"begin": 490,
"end": 503,
"name": "GT",
"source": 2
},
{
"begin": 487,
"end": 588,
"name": "ISZERO",
"source": 2
},
{
"begin": 487,
"end": 588,
"name": "PUSH [tag]",
"source": 2,
"value": "28"
},
{
"begin": 487,
"end": 588,
"name": "JUMPI",
"source": 2
},
{
"begin": 576,
"end": 577,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 567,
"end": 573,
"name": "DUP5",
"source": 2
},
{
"begin": 562,
"end": 565,
"name": "DUP5",
"source": 2
},
{
"begin": 558,
"end": 574,
"name": "ADD",
"source": 2
},
{
"begin": 551,
"end": 578,
"name": "MSTORE",
"source": 2
},
{
"begin": 487,
"end": 588,
"name": "tag",
"source": 2,
"value": "28"
},
{
"begin": 487,
"end": 588,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 336,
"end": 594,
"name": "POP",
"source": 2
},
{
"begin": 287,
"end": 594,
"name": "POP",
"source": 2
},
{
"begin": 287,
"end": 594,
"name": "POP",
"source": 2
},
{
"begin": 287,
"end": 594,
"name": "POP",
"source": 2
},
{
"begin": 287,
"end": 594,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 600,
"end": 702,
"name": "tag",
"source": 2,
"value": "16"
},
{
"begin": 600,
"end": 702,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 641,
"end": 647,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 692,
"end": 694,
"name": "PUSH",
"source": 2,
"value": "1F"
},
{
"begin": 688,
"end": 695,
"name": "NOT",
"source": 2
},
{
"begin": 683,
"end": 685,
"name": "PUSH",
"source": 2,
"value": "1F"
},
{
"begin": 676,
"end": 681,
"name": "DUP4",
"source": 2
},
{
"begin": 672,
"end": 686,
"name": "ADD",
"source": 2
},
{
"begin": 668,
"end": 696,
"name": "AND",
"source": 2
},
{
"begin": 658,
"end": 696,
"name": "SWAP1",
"source": 2
},
{
"begin": 658,
"end": 696,
"name": "POP",
"source": 2
},
{
"begin": 600,
"end": 702,
"name": "SWAP2",
"source": 2
},
{
"begin": 600,
"end": 702,
"name": "SWAP1",
"source": 2
},
{
"begin": 600,
"end": 702,
"name": "POP",
"source": 2
},
{
"begin": 600,
"end": 702,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 708,
"end": 1072,
"name": "tag",
"source": 2,
"value": "17"
},
{
"begin": 708,
"end": 1072,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 796,
"end": 799,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 824,
"end": 863,
"name": "PUSH [tag]",
"source": 2,
"value": "31"
},
{
"begin": 857,
"end": 862,
"name": "DUP3",
"source": 2
},
{
"begin": 824,
"end": 863,
"name": "PUSH [tag]",
"source": 2,
"value": "13"
},
{
"begin": 824,
"end": 863,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 824,
"end": 863,
"name": "tag",
"source": 2,
"value": "31"
},
{
"begin": 824,
"end": 863,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 879,
"end": 950,
"name": "PUSH [tag]",
"source": 2,
"value": "32"
},
{
"begin": 943,
"end": 949,
"name": "DUP2",
"source": 2
},
{
"begin": 938,
"end": 941,
"name": "DUP6",
"source": 2
},
{
"begin": 879,
"end": 950,
"name": "PUSH [tag]",
"source": 2,
"value": "14"
},
{
"begin": 879,
"end": 950,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 879,
"end": 950,
"name": "tag",
"source": 2,
"value": "32"
},
{
"begin": 879,
"end": 950,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 872,
"end": 950,
"name": "SWAP4",
"source": 2
},
{
"begin": 872,
"end": 950,
"name": "POP",
"source": 2
},
{
"begin": 959,
"end": 1011,
"name": "PUSH [tag]",
"source": 2,
"value": "33"
},
{
"begin": 1004,
"end": 1010,
"name": "DUP2",
"source": 2
},
{
"begin": 999,
"end": 1002,
"name": "DUP6",
"source": 2
},
{
"begin": 992,
"end": 996,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 985,
"end": 990,
"name": "DUP7",
"source": 2
},
{
"begin": 981,
"end": 997,
"name": "ADD",
"source": 2
},
{
"begin": 959,
"end": 1011,
"name": "PUSH [tag]",
"source": 2,
"value": "15"
},
{
"begin": 959,
"end": 1011,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 959,
"end": 1011,
"name": "tag",
"source": 2,
"value": "33"
},
{
"begin": 959,
"end": 1011,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1036,
"end": 1065,
"name": "PUSH [tag]",
"source": 2,
"value": "34"
},
{
"begin": 1058,
"end": 1064,
"name": "DUP2",
"source": 2
},
{
"begin": 1036,
"end": 1065,
"name": "PUSH [tag]",
"source": 2,
"value": "16"
},
{
"begin": 1036,
"end": 1065,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1036,
"end": 1065,
"name": "tag",
"source": 2,
"value": "34"
},
{
"begin": 1036,
"end": 1065,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1031,
"end": 1034,
"name": "DUP5",
"source": 2
},
{
"begin": 1027,
"end": 1066,
"name": "ADD",
"source": 2
},
{
"begin": 1020,
"end": 1066,
"name": "SWAP2",
"source": 2
},
{
"begin": 1020,
"end": 1066,
"name": "POP",
"source": 2
},
{
"begin": 800,
"end": 1072,
"name": "POP",
"source": 2
},
{
"begin": 708,
"end": 1072,
"name": "SWAP3",
"source": 2
},
{
"begin": 708,
"end": 1072,
"name": "SWAP2",
"source": 2
},
{
"begin": 708,
"end": 1072,
"name": "POP",
"source": 2
},
{
"begin": 708,
"end": 1072,
"name": "POP",
"source": 2
},
{
"begin": 708,
"end": 1072,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1078,
"end": 1204,
"name": "tag",
"source": 2,
"value": "18"
},
{
"begin": 1078,
"end": 1204,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1115,
"end": 1122,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1155,
"end": 1197,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1148,
"end": 1153,
"name": "DUP3",
"source": 2
},
{
"begin": 1144,
"end": 1198,
"name": "AND",
"source": 2
},
{
"begin": 1133,
"end": 1198,
"name": "SWAP1",
"source": 2
},
{
"begin": 1133,
"end": 1198,
"name": "POP",
"source": 2
},
{
"begin": 1078,
"end": 1204,
"name": "SWAP2",
"source": 2
},
{
"begin": 1078,
"end": 1204,
"name": "SWAP1",
"source": 2
},
{
"begin": 1078,
"end": 1204,
"name": "POP",
"source": 2
},
{
"begin": 1078,
"end": 1204,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1210,
"end": 1306,
"name": "tag",
"source": 2,
"value": "19"
},
{
"begin": 1210,
"end": 1306,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1247,
"end": 1254,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1276,
"end": 1300,
"name": "PUSH [tag]",
"source": 2,
"value": "37"
},
{
"begin": 1294,
"end": 1299,
"name": "DUP3",
"source": 2
},
{
"begin": 1276,
"end": 1300,
"name": "PUSH [tag]",
"source": 2,
"value": "18"
},
{
"begin": 1276,
"end": 1300,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1276,
"end": 1300,
"name": "tag",
"source": 2,
"value": "37"
},
{
"begin": 1276,
"end": 1300,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1265,
"end": 1300,
"name": "SWAP1",
"source": 2
},
{
"begin": 1265,
"end": 1300,
"name": "POP",
"source": 2
},
{
"begin": 1210,
"end": 1306,
"name": "SWAP2",
"source": 2
},
{
"begin": 1210,
"end": 1306,
"name": "SWAP1",
"source": 2
},
{
"begin": 1210,
"end": 1306,
"name": "POP",
"source": 2
},
{
"begin": 1210,
"end": 1306,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1312,
"end": 1430,
"name": "tag",
"source": 2,
"value": "20"
},
{
"begin": 1312,
"end": 1430,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1399,
"end": 1423,
"name": "PUSH [tag]",
"source": 2,
"value": "39"
},
{
"begin": 1417,
"end": 1422,
"name": "DUP2",
"source": 2
},
{
"begin": 1399,
"end": 1423,
"name": "PUSH [tag]",
"source": 2,
"value": "19"
},
{
"begin": 1399,
"end": 1423,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1399,
"end": 1423,
"name": "tag",
"source": 2,
"value": "39"
},
{
"begin": 1399,
"end": 1423,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1394,
"end": 1397,
"name": "DUP3",
"source": 2
},
{
"begin": 1387,
"end": 1424,
"name": "MSTORE",
"source": 2
},
{
"begin": 1312,
"end": 1430,
"name": "POP",
"source": 2
},
{
"begin": 1312,
"end": 1430,
"name": "POP",
"source": 2
},
{
"begin": 1312,
"end": 1430,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1436,
"end": 1859,
"name": "tag",
"source": 2,
"value": "10"
},
{
"begin": 1436,
"end": 1859,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1577,
"end": 1581,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1615,
"end": 1617,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 1604,
"end": 1613,
"name": "DUP3",
"source": 2
},
{
"begin": 1600,
"end": 1618,
"name": "ADD",
"source": 2
},
{
"begin": 1592,
"end": 1618,
"name": "SWAP1",
"source": 2
},
{
"begin": 1592,
"end": 1618,
"name": "POP",
"source": 2
},
{
"begin": 1664,
"end": 1673,
"name": "DUP2",
"source": 2
},
{
"begin": 1658,
"end": 1662,
"name": "DUP2",
"source": 2
},
{
"begin": 1654,
"end": 1674,
"name": "SUB",
"source": 2
},
{
"begin": 1650,
"end": 1651,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1639,
"end": 1648,
"name": "DUP4",
"source": 2
},
{
"begin": 1635,
"end": 1652,
"name": "ADD",
"source": 2
},
{
"begin": 1628,
"end": 1675,
"name": "MSTORE",
"source": 2
},
{
"begin": 1692,
"end": 1770,
"name": "PUSH [tag]",
"source": 2,
"value": "41"
},
{
"begin": 1765,
"end": 1769,
"name": "DUP2",
"source": 2
},
{
"begin": 1756,
"end": 1762,
"name": "DUP6",
"source": 2
},
{
"begin": 1692,
"end": 1770,
"name": "PUSH [tag]",
"source": 2,
"value": "17"
},
{
"begin": 1692,
"end": 1770,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1692,
"end": 1770,
"name": "tag",
"source": 2,
"value": "41"
},
{
"begin": 1692,
"end": 1770,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1684,
"end": 1770,
"name": "SWAP1",
"source": 2
},
{
"begin": 1684,
"end": 1770,
"name": "POP",
"source": 2
},
{
"begin": 1780,
"end": 1852,
"name": "PUSH [tag]",
"source": 2,
"value": "42"
},
{
"begin": 1848,
"end": 1850,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 1837,
"end": 1846,
"name": "DUP4",
"source": 2
},
{
"begin": 1833,
"end": 1851,
"name": "ADD",
"source": 2
},
{
"begin": 1824,
"end": 1830,
"name": "DUP5",
"source": 2
},
{
"begin": 1780,
"end": 1852,
"name": "PUSH [tag]",
"source": 2,
"value": "20"
},
{
"begin": 1780,
"end": 1852,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1780,
"end": 1852,
"name": "tag",
"source": 2,
"value": "42"
},
{
"begin": 1780,
"end": 1852,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1436,
"end": 1859,
"name": "SWAP4",
"source": 2
},
{
"begin": 1436,
"end": 1859,
"name": "SWAP3",
"source": 2
},
{
"begin": 1436,
"end": 1859,
"name": "POP",
"source": 2
},
{
"begin": 1436,
"end": 1859,
"name": "POP",
"source": 2
},
{
"begin": 1436,
"end": 1859,
"name": "POP",
"source": 2
},
{
"begin": 1436,
"end": 1859,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 152,
"end": 1565,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 152,
"end": 1565,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 152,
"end": 1565,
"name": "DUP1",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 152,
"end": 1565,
"name": "CODECOPY",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 152,
"end": 1565,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220e6da7ac5277dfc1502d5e2448400f616ad752402247f2d0b6911a5b31128202064736f6c634300080e0033",
".code": [
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 152,
"end": 1565,
"name": "MSTORE",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "DUP1",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "ISZERO",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 152,
"end": 1565,
"name": "JUMPI",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 152,
"end": 1565,
"name": "DUP1",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "REVERT",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 152,
"end": 1565,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "POP",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 152,
"end": 1565,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "LT",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 152,
"end": 1565,
"name": "JUMPI",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 152,
"end": 1565,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 152,
"end": 1565,
"name": "SHR",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "DUP1",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "893D20E8"
},
{
"begin": 152,
"end": 1565,
"name": "EQ",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 152,
"end": 1565,
"name": "JUMPI",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "DUP1",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "A6F9DAE1"
},
{
"begin": 152,
"end": 1565,
"name": "EQ",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 152,
"end": 1565,
"name": "JUMPI",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 152,
"end": 1565,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 152,
"end": 1565,
"name": "DUP1",
"source": 0
},
{
"begin": 152,
"end": 1565,
"name": "REVERT",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 1482,
"end": 1563,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 1482,
"end": 1563,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 1482,
"end": 1563,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 1482,
"end": 1563,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1482,
"end": 1563,
"name": "MLOAD",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 1482,
"end": 1563,
"name": "SWAP2",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "SWAP1",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 1482,
"end": 1563,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 1482,
"end": 1563,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1482,
"end": 1563,
"name": "MLOAD",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "DUP1",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "SWAP2",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "SUB",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "SWAP1",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "RETURN",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 1267,
"end": 1394,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 1267,
"end": 1394,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 1267,
"end": 1394,
"name": "DUP1",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "SUB",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "DUP2",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "ADD",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "SWAP1",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 1267,
"end": 1394,
"name": "SWAP2",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "SWAP1",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 1267,
"end": 1394,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 1267,
"end": 1394,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 1267,
"end": 1394,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 1267,
"end": 1394,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "STOP",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 1482,
"end": 1563,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1525,
"end": 1532,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1551,
"end": 1556,
"name": "DUP1",
"source": 0
},
{
"begin": 1551,
"end": 1556,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1551,
"end": 1556,
"name": "SWAP1",
"source": 0
},
{
"begin": 1551,
"end": 1556,
"name": "SLOAD",
"source": 0
},
{
"begin": 1551,
"end": 1556,
"name": "SWAP1",
"source": 0
},
{
"begin": 1551,
"end": 1556,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 1551,
"end": 1556,
"name": "EXP",
"source": 0
},
{
"begin": 1551,
"end": 1556,
"name": "SWAP1",
"source": 0
},
{
"begin": 1551,
"end": 1556,
"name": "DIV",
"source": 0
},
{
"begin": 1551,
"end": 1556,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1551,
"end": 1556,
"name": "AND",
"source": 0
},
{
"begin": 1544,
"end": 1556,
"name": "SWAP1",
"source": 0
},
{
"begin": 1544,
"end": 1556,
"name": "POP",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"name": "SWAP1",
"source": 0
},
{
"begin": 1482,
"end": 1563,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 1267,
"end": 1394,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 830,
"end": 835,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 830,
"end": 835,
"name": "DUP1",
"source": 0
},
{
"begin": 830,
"end": 835,
"name": "SLOAD",
"source": 0
},
{
"begin": 830,
"end": 835,
"name": "SWAP1",
"source": 0
},
{
"begin": 830,
"end": 835,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 830,
"end": 835,
"name": "EXP",
"source": 0
},
{
"begin": 830,
"end": 835,
"name": "SWAP1",
"source": 0
},
{
"begin": 830,
"end": 835,
"name": "DIV",
"source": 0
},
{
"begin": 830,
"end": 835,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 830,
"end": 835,
"name": "AND",
"source": 0
},
{
"begin": 816,
"end": 835,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 816,
"end": 835,
"name": "AND",
"source": 0
},
{
"begin": 816,
"end": 826,
"name": "CALLER",
"source": 0
},
{
"begin": 816,
"end": 835,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 816,
"end": 835,
"name": "AND",
"source": 0
},
{
"begin": 816,
"end": 835,
"name": "EQ",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 808,
"end": 859,
"name": "JUMPI",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 808,
"end": 859,
"name": "MLOAD",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 808,
"end": 859,
"name": "DUP2",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "MSTORE",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 808,
"end": 859,
"name": "ADD",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 808,
"end": 859,
"name": "SWAP1",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 808,
"end": 859,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 808,
"end": 859,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 808,
"end": 859,
"name": "MLOAD",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "DUP1",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "SWAP2",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "SUB",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "SWAP1",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "REVERT",
"source": 0
},
{
"begin": 808,
"end": 859,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 808,
"end": 859,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1352,
"end": 1360,
"modifierDepth": 1,
"name": "DUP1",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "AND",
"source": 0
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1345,
"end": 1350,
"name": "DUP1",
"source": 0
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "SLOAD",
"source": 0
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "SWAP1",
"source": 0
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "EXP",
"source": 0
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "SWAP1",
"source": 0
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "DIV",
"source": 0
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1345,
"end": 1350,
"modifierDepth": 1,
"name": "AND",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "AND",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735"
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "MLOAD",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "MLOAD",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "DUP1",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "SWAP2",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "SUB",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "SWAP1",
"source": 0
},
{
"begin": 1336,
"end": 1361,
"modifierDepth": 1,
"name": "LOG3",
"source": 0
},
{
"begin": 1379,
"end": 1387,
"modifierDepth": 1,
"name": "DUP1",
"source": 0
},
{
"begin": 1371,
"end": 1376,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1371,
"end": 1376,
"name": "DUP1",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "EXP",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "DUP2",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "SLOAD",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "DUP2",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "MUL",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "NOT",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "AND",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "SWAP1",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "DUP4",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "AND",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "MUL",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "OR",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "SWAP1",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "SSTORE",
"source": 0
},
{
"begin": 1371,
"end": 1387,
"modifierDepth": 1,
"name": "POP",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"name": "POP",
"source": 0
},
{
"begin": 1267,
"end": 1394,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 6298,
"end": 6434,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 6298,
"end": 6434,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6359,
"end": 6430,
"name": "PUSH [tag]",
"source": 1,
"value": "21"
},
{
"begin": 6422,
"end": 6424,
"name": "DUP3",
"source": 1
},
{
"begin": 6426,
"end": 6428,
"name": "DUP3",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 6375,
"end": 6429,
"name": "MLOAD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 6375,
"end": 6429,
"name": "ADD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH [tag]",
"source": 1,
"value": "22"
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP3",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP1",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH [tag]",
"source": 1,
"value": "23"
},
{
"begin": 6375,
"end": 6429,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "tag",
"source": 1,
"value": "22"
},
{
"begin": 6375,
"end": 6429,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 6375,
"end": 6429,
"name": "MLOAD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 6375,
"end": 6429,
"name": "DUP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SUB",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SUB",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "MSTORE",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "SWAP1",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 6375,
"end": 6429,
"name": "MSTORE",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "319AF33300000000000000000000000000000000000000000000000000000000"
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 6375,
"end": 6429,
"name": "NOT",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "AND",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 6375,
"end": 6429,
"name": "DUP3",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "ADD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP1",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "MLOAD",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "PUSH",
"source": 1,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP2",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "AND",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "OR",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "DUP4",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "MSTORE",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6375,
"end": 6429,
"name": "POP",
"source": 1
},
{
"begin": 6359,
"end": 6374,
"name": "PUSH [tag]",
"source": 1,
"value": "24"
},
{
"begin": 6359,
"end": 6430,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 6359,
"end": 6430,
"name": "tag",
"source": 1,
"value": "21"
},
{
"begin": 6359,
"end": 6430,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6298,
"end": 6434,
"name": "POP",
"source": 1
},
{
"begin": 6298,
"end": 6434,
"name": "POP",
"source": 1
},
{
"begin": 6298,
"end": 6434,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 176,
"end": 464,
"name": "tag",
"source": 1,
"value": "24"
},
{
"begin": 176,
"end": 464,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 240,
"end": 261,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 264,
"end": 271,
"name": "DUP2",
"source": 1
},
{
"begin": 264,
"end": 278,
"name": "MLOAD",
"source": 1
},
{
"begin": 240,
"end": 278,
"name": "SWAP1",
"source": 1
},
{
"begin": 240,
"end": 278,
"name": "POP",
"source": 1
},
{
"begin": 282,
"end": 304,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 129,
"end": 171,
"name": "PUSH",
"source": 1,
"value": "636F6E736F6C652E6C6F67"
},
{
"begin": 282,
"end": 322,
"name": "SWAP1",
"source": 1
},
{
"begin": 282,
"end": 322,
"name": "POP",
"source": 1
},
{
"begin": 373,
"end": 375,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 364,
"end": 371,
"name": "DUP4",
"source": 1
},
{
"begin": 360,
"end": 376,
"name": "ADD",
"source": 1
},
{
"begin": 455,
"end": 456,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 452,
"end": 453,
"name": "DUP1",
"source": 1
},
{
"begin": 437,
"end": 450,
"name": "DUP5",
"source": 1
},
{
"begin": 423,
"end": 435,
"name": "DUP4",
"source": 1
},
{
"begin": 407,
"end": 421,
"name": "DUP6",
"source": 1
},
{
"begin": 400,
"end": 405,
"name": "GAS",
"source": 1
},
{
"begin": 389,
"end": 457,
"name": "STATICCALL",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 335,
"end": 461,
"name": "POP",
"source": 1
},
{
"begin": 176,
"end": 464,
"name": "POP",
"source": 1
},
{
"begin": 176,
"end": 464,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 7,
"end": 133,
"name": "tag",
"source": 2,
"value": "26"
},
{
"begin": 7,
"end": 133,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 44,
"end": 51,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 84,
"end": 126,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 77,
"end": 82,
"name": "DUP3",
"source": 2
},
{
"begin": 73,
"end": 127,
"name": "AND",
"source": 2
},
{
"begin": 62,
"end": 127,
"name": "SWAP1",
"source": 2
},
{
"begin": 62,
"end": 127,
"name": "POP",
"source": 2
},
{
"begin": 7,
"end": 133,
"name": "SWAP2",
"source": 2
},
{
"begin": 7,
"end": 133,
"name": "SWAP1",
"source": 2
},
{
"begin": 7,
"end": 133,
"name": "POP",
"source": 2
},
{
"begin": 7,
"end": 133,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 139,
"end": 235,
"name": "tag",
"source": 2,
"value": "27"
},
{
"begin": 139,
"end": 235,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 176,
"end": 183,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 205,
"end": 229,
"name": "PUSH [tag]",
"source": 2,
"value": "44"
},
{
"begin": 223,
"end": 228,
"name": "DUP3",
"source": 2
},
{
"begin": 205,
"end": 229,
"name": "PUSH [tag]",
"source": 2,
"value": "26"
},
{
"begin": 205,
"end": 229,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 205,
"end": 229,
"name": "tag",
"source": 2,
"value": "44"
},
{
"begin": 205,
"end": 229,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 194,
"end": 229,
"name": "SWAP1",
"source": 2
},
{
"begin": 194,
"end": 229,
"name": "POP",
"source": 2
},
{
"begin": 139,
"end": 235,
"name": "SWAP2",
"source": 2
},
{
"begin": 139,
"end": 235,
"name": "SWAP1",
"source": 2
},
{
"begin": 139,
"end": 235,
"name": "POP",
"source": 2
},
{
"begin": 139,
"end": 235,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 241,
"end": 359,
"name": "tag",
"source": 2,
"value": "28"
},
{
"begin": 241,
"end": 359,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 328,
"end": 352,
"name": "PUSH [tag]",
"source": 2,
"value": "46"
},
{
"begin": 346,
"end": 351,
"name": "DUP2",
"source": 2
},
{
"begin": 328,
"end": 352,
"name": "PUSH [tag]",
"source": 2,
"value": "27"
},
{
"begin": 328,
"end": 352,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 328,
"end": 352,
"name": "tag",
"source": 2,
"value": "46"
},
{
"begin": 328,
"end": 352,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 323,
"end": 326,
"name": "DUP3",
"source": 2
},
{
"begin": 316,
"end": 353,
"name": "MSTORE",
"source": 2
},
{
"begin": 241,
"end": 359,
"name": "POP",
"source": 2
},
{
"begin": 241,
"end": 359,
"name": "POP",
"source": 2
},
{
"begin": 241,
"end": 359,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 365,
"end": 587,
"name": "tag",
"source": 2,
"value": "8"
},
{
"begin": 365,
"end": 587,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 458,
"end": 462,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 496,
"end": 498,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 485,
"end": 494,
"name": "DUP3",
"source": 2
},
{
"begin": 481,
"end": 499,
"name": "ADD",
"source": 2
},
{
"begin": 473,
"end": 499,
"name": "SWAP1",
"source": 2
},
{
"begin": 473,
"end": 499,
"name": "POP",
"source": 2
},
{
"begin": 509,
"end": 580,
"name": "PUSH [tag]",
"source": 2,
"value": "48"
},
{
"begin": 577,
"end": 578,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 566,
"end": 575,
"name": "DUP4",
"source": 2
},
{
"begin": 562,
"end": 579,
"name": "ADD",
"source": 2
},
{
"begin": 553,
"end": 559,
"name": "DUP5",
"source": 2
},
{
"begin": 509,
"end": 580,
"name": "PUSH [tag]",
"source": 2,
"value": "28"
},
{
"begin": 509,
"end": 580,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 509,
"end": 580,
"name": "tag",
"source": 2,
"value": "48"
},
{
"begin": 509,
"end": 580,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 365,
"end": 587,
"name": "SWAP3",
"source": 2
},
{
"begin": 365,
"end": 587,
"name": "SWAP2",
"source": 2
},
{
"begin": 365,
"end": 587,
"name": "POP",
"source": 2
},
{
"begin": 365,
"end": 587,
"name": "POP",
"source": 2
},
{
"begin": 365,
"end": 587,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 674,
"end": 791,
"name": "tag",
"source": 2,
"value": "30"
},
{
"begin": 674,
"end": 791,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 783,
"end": 784,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 780,
"end": 781,
"name": "DUP1",
"source": 2
},
{
"begin": 773,
"end": 785,
"name": "REVERT",
"source": 2
},
{
"begin": 920,
"end": 1042,
"name": "tag",
"source": 2,
"value": "32"
},
{
"begin": 920,
"end": 1042,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 993,
"end": 1017,
"name": "PUSH [tag]",
"source": 2,
"value": "53"
},
{
"begin": 1011,
"end": 1016,
"name": "DUP2",
"source": 2
},
{
"begin": 993,
"end": 1017,
"name": "PUSH [tag]",
"source": 2,
"value": "27"
},
{
"begin": 993,
"end": 1017,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 993,
"end": 1017,
"name": "tag",
"source": 2,
"value": "53"
},
{
"begin": 993,
"end": 1017,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 986,
"end": 991,
"name": "DUP2",
"source": 2
},
{
"begin": 983,
"end": 1018,
"name": "EQ",
"source": 2
},
{
"begin": 973,
"end": 1036,
"name": "PUSH [tag]",
"source": 2,
"value": "54"
},
{
"begin": 973,
"end": 1036,
"name": "JUMPI",
"source": 2
},
{
"begin": 1032,
"end": 1033,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1029,
"end": 1030,
"name": "DUP1",
"source": 2
},
{
"begin": 1022,
"end": 1034,
"name": "REVERT",
"source": 2
},
{
"begin": 973,
"end": 1036,
"name": "tag",
"source": 2,
"value": "54"
},
{
"begin": 973,
"end": 1036,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 920,
"end": 1042,
"name": "POP",
"source": 2
},
{
"begin": 920,
"end": 1042,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1048,
"end": 1187,
"name": "tag",
"source": 2,
"value": "33"
},
{
"begin": 1048,
"end": 1187,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1094,
"end": 1099,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1132,
"end": 1138,
"name": "DUP2",
"source": 2
},
{
"begin": 1119,
"end": 1139,
"name": "CALLDATALOAD",
"source": 2
},
{
"begin": 1110,
"end": 1139,
"name": "SWAP1",
"source": 2
},
{
"begin": 1110,
"end": 1139,
"name": "POP",
"source": 2
},
{
"begin": 1148,
"end": 1181,
"name": "PUSH [tag]",
"source": 2,
"value": "56"
},
{
"begin": 1175,
"end": 1180,
"name": "DUP2",
"source": 2
},
{
"begin": 1148,
"end": 1181,
"name": "PUSH [tag]",
"source": 2,
"value": "32"
},
{
"begin": 1148,
"end": 1181,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1148,
"end": 1181,
"name": "tag",
"source": 2,
"value": "56"
},
{
"begin": 1148,
"end": 1181,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1048,
"end": 1187,
"name": "SWAP3",
"source": 2
},
{
"begin": 1048,
"end": 1187,
"name": "SWAP2",
"source": 2
},
{
"begin": 1048,
"end": 1187,
"name": "POP",
"source": 2
},
{
"begin": 1048,
"end": 1187,
"name": "POP",
"source": 2
},
{
"begin": 1048,
"end": 1187,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1193,
"end": 1522,
"name": "tag",
"source": 2,
"value": "11"
},
{
"begin": 1193,
"end": 1522,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1252,
"end": 1258,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1301,
"end": 1303,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 1289,
"end": 1298,
"name": "DUP3",
"source": 2
},
{
"begin": 1280,
"end": 1287,
"name": "DUP5",
"source": 2
},
{
"begin": 1276,
"end": 1299,
"name": "SUB",
"source": 2
},
{
"begin": 1272,
"end": 1304,
"name": "SLT",
"source": 2
},
{
"begin": 1269,
"end": 1388,
"name": "ISZERO",
"source": 2
},
{
"begin": 1269,
"end": 1388,
"name": "PUSH [tag]",
"source": 2,
"value": "58"
},
{
"begin": 1269,
"end": 1388,
"name": "JUMPI",
"source": 2
},
{
"begin": 1307,
"end": 1386,
"name": "PUSH [tag]",
"source": 2,
"value": "59"
},
{
"begin": 1307,
"end": 1386,
"name": "PUSH [tag]",
"source": 2,
"value": "30"
},
{
"begin": 1307,
"end": 1386,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1307,
"end": 1386,
"name": "tag",
"source": 2,
"value": "59"
},
{
"begin": 1307,
"end": 1386,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1269,
"end": 1388,
"name": "tag",
"source": 2,
"value": "58"
},
{
"begin": 1269,
"end": 1388,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1427,
"end": 1428,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1452,
"end": 1505,
"name": "PUSH [tag]",
"source": 2,
"value": "60"
},
{
"begin": 1497,
"end": 1504,
"name": "DUP5",
"source": 2
},
{
"begin": 1488,
"end": 1494,
"name": "DUP3",
"source": 2
},
{
"begin": 1477,
"end": 1486,
"name": "DUP6",
"source": 2
},
{
"begin": 1473,
"end": 1495,
"name": "ADD",
"source": 2
},
{
"begin": 1452,
"end": 1505,
"name": "PUSH [tag]",
"source": 2,
"value": "33"
},
{
"begin": 1452,
"end": 1505,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1452,
"end": 1505,
"name": "tag",
"source": 2,
"value": "60"
},
{
"begin": 1452,
"end": 1505,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1442,
"end": 1505,
"name": "SWAP2",
"source": 2
},
{
"begin": 1442,
"end": 1505,
"name": "POP",
"source": 2
},
{
"begin": 1398,
"end": 1515,
"name": "POP",
"source": 2
},
{
"begin": 1193,
"end": 1522,
"name": "SWAP3",
"source": 2
},
{
"begin": 1193,
"end": 1522,
"name": "SWAP2",
"source": 2
},
{
"begin": 1193,
"end": 1522,
"name": "POP",
"source": 2
},
{
"begin": 1193,
"end": 1522,
"name": "POP",
"source": 2
},
{
"begin": 1193,
"end": 1522,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1528,
"end": 1697,
"name": "tag",
"source": 2,
"value": "34"
},
{
"begin": 1528,
"end": 1697,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1612,
"end": 1623,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1646,
"end": 1652,
"name": "DUP3",
"source": 2
},
{
"begin": 1641,
"end": 1644,
"name": "DUP3",
"source": 2
},
{
"begin": 1634,
"end": 1653,
"name": "MSTORE",
"source": 2
},
{
"begin": 1686,
"end": 1690,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 1681,
"end": 1684,
"name": "DUP3",
"source": 2
},
{
"begin": 1677,
"end": 1691,
"name": "ADD",
"source": 2
},
{
"begin": 1662,
"end": 1691,
"name": "SWAP1",
"source": 2
},
{
"begin": 1662,
"end": 1691,
"name": "POP",
"source": 2
},
{
"begin": 1528,
"end": 1697,
"name": "SWAP3",
"source": 2
},
{
"begin": 1528,
"end": 1697,
"name": "SWAP2",
"source": 2
},
{
"begin": 1528,
"end": 1697,
"name": "POP",
"source": 2
},
{
"begin": 1528,
"end": 1697,
"name": "POP",
"source": 2
},
{
"begin": 1528,
"end": 1697,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1703,
"end": 1872,
"name": "tag",
"source": 2,
"value": "35"
},
{
"begin": 1703,
"end": 1872,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1843,
"end": 1864,
"name": "PUSH",
"source": 2,
"value": "43616C6C6572206973206E6F74206F776E657200000000000000000000000000"
},
{
"begin": 1839,
"end": 1840,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1831,
"end": 1837,
"name": "DUP3",
"source": 2
},
{
"begin": 1827,
"end": 1841,
"name": "ADD",
"source": 2
},
{
"begin": 1820,
"end": 1865,
"name": "MSTORE",
"source": 2
},
{
"begin": 1703,
"end": 1872,
"name": "POP",
"source": 2
},
{
"begin": 1703,
"end": 1872,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1878,
"end": 2244,
"name": "tag",
"source": 2,
"value": "36"
},
{
"begin": 1878,
"end": 2244,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2020,
"end": 2023,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2041,
"end": 2108,
"name": "PUSH [tag]",
"source": 2,
"value": "64"
},
{
"begin": 2105,
"end": 2107,
"name": "PUSH",
"source": 2,
"value": "13"
},
{
"begin": 2100,
"end": 2103,
"name": "DUP4",
"source": 2
},
{
"begin": 2041,
"end": 2108,
"name": "PUSH [tag]",
"source": 2,
"value": "34"
},
{
"begin": 2041,
"end": 2108,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2041,
"end": 2108,
"name": "tag",
"source": 2,
"value": "64"
},
{
"begin": 2041,
"end": 2108,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2034,
"end": 2108,
"name": "SWAP2",
"source": 2
},
{
"begin": 2034,
"end": 2108,
"name": "POP",
"source": 2
},
{
"begin": 2117,
"end": 2210,
"name": "PUSH [tag]",
"source": 2,
"value": "65"
},
{
"begin": 2206,
"end": 2209,
"name": "DUP3",
"source": 2
},
{
"begin": 2117,
"end": 2210,
"name": "PUSH [tag]",
"source": 2,
"value": "35"
},
{
"begin": 2117,
"end": 2210,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2117,
"end": 2210,
"name": "tag",
"source": 2,
"value": "65"
},
{
"begin": 2117,
"end": 2210,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2235,
"end": 2237,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 2230,
"end": 2233,
"name": "DUP3",
"source": 2
},
{
"begin": 2226,
"end": 2238,
"name": "ADD",
"source": 2
},
{
"begin": 2219,
"end": 2238,
"name": "SWAP1",
"source": 2
},
{
"begin": 2219,
"end": 2238,
"name": "POP",
"source": 2
},
{
"begin": 1878,
"end": 2244,
"name": "SWAP2",
"source": 2
},
{
"begin": 1878,
"end": 2244,
"name": "SWAP1",
"source": 2
},
{
"begin": 1878,
"end": 2244,
"name": "POP",
"source": 2
},
{
"begin": 1878,
"end": 2244,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 2250,
"end": 2669,
"name": "tag",
"source": 2,
"value": "18"
},
{
"begin": 2250,
"end": 2669,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2416,
"end": 2420,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2454,
"end": 2456,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 2443,
"end": 2452,
"name": "DUP3",
"source": 2
},
{
"begin": 2439,
"end": 2457,
"name": "ADD",
"source": 2
},
{
"begin": 2431,
"end": 2457,
"name": "SWAP1",
"source": 2
},
{
"begin": 2431,
"end": 2457,
"name": "POP",
"source": 2
},
{
"begin": 2503,
"end": 2512,
"name": "DUP2",
"source": 2
},
{
"begin": 2497,
"end": 2501,
"name": "DUP2",
"source": 2
},
{
"begin": 2493,
"end": 2513,
"name": "SUB",
"source": 2
},
{
"begin": 2489,
"end": 2490,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2478,
"end": 2487,
"name": "DUP4",
"source": 2
},
{
"begin": 2474,
"end": 2491,
"name": "ADD",
"source": 2
},
{
"begin": 2467,
"end": 2514,
"name": "MSTORE",
"source": 2
},
{
"begin": 2531,
"end": 2662,
"name": "PUSH [tag]",
"source": 2,
"value": "67"
},
{
"begin": 2657,
"end": 2661,
"name": "DUP2",
"source": 2
},
{
"begin": 2531,
"end": 2662,
"name": "PUSH [tag]",
"source": 2,
"value": "36"
},
{
"begin": 2531,
"end": 2662,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2531,
"end": 2662,
"name": "tag",
"source": 2,
"value": "67"
},
{
"begin": 2531,
"end": 2662,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2523,
"end": 2662,
"name": "SWAP1",
"source": 2
},
{
"begin": 2523,
"end": 2662,
"name": "POP",
"source": 2
},
{
"begin": 2250,
"end": 2669,
"name": "SWAP2",
"source": 2
},
{
"begin": 2250,
"end": 2669,
"name": "SWAP1",
"source": 2
},
{
"begin": 2250,
"end": 2669,
"name": "POP",
"source": 2
},
{
"begin": 2250,
"end": 2669,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 2675,
"end": 2774,
"name": "tag",
"source": 2,
"value": "37"
},
{
"begin": 2675,
"end": 2774,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2727,
"end": 2733,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2761,
"end": 2766,
"name": "DUP2",
"source": 2
},
{
"begin": 2755,
"end": 2767,
"name": "MLOAD",
"source": 2
},
{
"begin": 2745,
"end": 2767,
"name": "SWAP1",
"source": 2
},
{
"begin": 2745,
"end": 2767,
"name": "POP",
"source": 2
},
{
"begin": 2675,
"end": 2774,
"name": "SWAP2",
"source": 2
},
{
"begin": 2675,
"end": 2774,
"name": "SWAP1",
"source": 2
},
{
"begin": 2675,
"end": 2774,
"name": "POP",
"source": 2
},
{
"begin": 2675,
"end": 2774,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 2780,
"end": 3087,
"name": "tag",
"source": 2,
"value": "38"
},
{
"begin": 2780,
"end": 3087,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2848,
"end": 2849,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2858,
"end": 2971,
"name": "tag",
"source": 2,
"value": "70"
},
{
"begin": 2858,
"end": 2971,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2872,
"end": 2878,
"name": "DUP4",
"source": 2
},
{
"begin": 2869,
"end": 2870,
"name": "DUP2",
"source": 2
},
{
"begin": 2866,
"end": 2879,
"name": "LT",
"source": 2
},
{
"begin": 2858,
"end": 2971,
"name": "ISZERO",
"source": 2
},
{
"begin": 2858,
"end": 2971,
"name": "PUSH [tag]",
"source": 2,
"value": "72"
},
{
"begin": 2858,
"end": 2971,
"name": "JUMPI",
"source": 2
},
{
"begin": 2957,
"end": 2958,
"name": "DUP1",
"source": 2
},
{
"begin": 2952,
"end": 2955,
"name": "DUP3",
"source": 2
},
{
"begin": 2948,
"end": 2959,
"name": "ADD",
"source": 2
},
{
"begin": 2942,
"end": 2960,
"name": "MLOAD",
"source": 2
},
{
"begin": 2938,
"end": 2939,
"name": "DUP2",
"source": 2
},
{
"begin": 2933,
"end": 2936,
"name": "DUP5",
"source": 2
},
{
"begin": 2929,
"end": 2940,
"name": "ADD",
"source": 2
},
{
"begin": 2922,
"end": 2961,
"name": "MSTORE",
"source": 2
},
{
"begin": 2894,
"end": 2896,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 2891,
"end": 2892,
"name": "DUP2",
"source": 2
},
{
"begin": 2887,
"end": 2897,
"name": "ADD",
"source": 2
},
{
"begin": 2882,
"end": 2897,
"name": "SWAP1",
"source": 2
},
{
"begin": 2882,
"end": 2897,
"name": "POP",
"source": 2
},
{
"begin": 2858,
"end": 2971,
"name": "PUSH [tag]",
"source": 2,
"value": "70"
},
{
"begin": 2858,
"end": 2971,
"name": "JUMP",
"source": 2
},
{
"begin": 2858,
"end": 2971,
"name": "tag",
"source": 2,
"value": "72"
},
{
"begin": 2858,
"end": 2971,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2989,
"end": 2995,
"name": "DUP4",
"source": 2
},
{
"begin": 2986,
"end": 2987,
"name": "DUP2",
"source": 2
},
{
"begin": 2983,
"end": 2996,
"name": "GT",
"source": 2
},
{
"begin": 2980,
"end": 3081,
"name": "ISZERO",
"source": 2
},
{
"begin": 2980,
"end": 3081,
"name": "PUSH [tag]",
"source": 2,
"value": "73"
},
{
"begin": 2980,
"end": 3081,
"name": "JUMPI",
"source": 2
},
{
"begin": 3069,
"end": 3070,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3060,
"end": 3066,
"name": "DUP5",
"source": 2
},
{
"begin": 3055,
"end": 3058,
"name": "DUP5",
"source": 2
},
{
"begin": 3051,
"end": 3067,
"name": "ADD",
"source": 2
},
{
"begin": 3044,
"end": 3071,
"name": "MSTORE",
"source": 2
},
{
"begin": 2980,
"end": 3081,
"name": "tag",
"source": 2,
"value": "73"
},
{
"begin": 2980,
"end": 3081,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2829,
"end": 3087,
"name": "POP",
"source": 2
},
{
"begin": 2780,
"end": 3087,
"name": "POP",
"source": 2
},
{
"begin": 2780,
"end": 3087,
"name": "POP",
"source": 2
},
{
"begin": 2780,
"end": 3087,
"name": "POP",
"source": 2
},
{
"begin": 2780,
"end": 3087,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 3093,
"end": 3195,
"name": "tag",
"source": 2,
"value": "39"
},
{
"begin": 3093,
"end": 3195,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3134,
"end": 3140,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3185,
"end": 3187,
"name": "PUSH",
"source": 2,
"value": "1F"
},
{
"begin": 3181,
"end": 3188,
"name": "NOT",
"source": 2
},
{
"begin": 3176,
"end": 3178,
"name": "PUSH",
"source": 2,
"value": "1F"
},
{
"begin": 3169,
"end": 3174,
"name": "DUP4",
"source": 2
},
{
"begin": 3165,
"end": 3179,
"name": "ADD",
"source": 2
},
{
"begin": 3161,
"end": 3189,
"name": "AND",
"source": 2
},
{
"begin": 3151,
"end": 3189,
"name": "SWAP1",
"source": 2
},
{
"begin": 3151,
"end": 3189,
"name": "POP",
"source": 2
},
{
"begin": 3093,
"end": 3195,
"name": "SWAP2",
"source": 2
},
{
"begin": 3093,
"end": 3195,
"name": "SWAP1",
"source": 2
},
{
"begin": 3093,
"end": 3195,
"name": "POP",
"source": 2
},
{
"begin": 3093,
"end": 3195,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 3201,
"end": 3565,
"name": "tag",
"source": 2,
"value": "40"
},
{
"begin": 3201,
"end": 3565,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3289,
"end": 3292,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3317,
"end": 3356,
"name": "PUSH [tag]",
"source": 2,
"value": "76"
},
{
"begin": 3350,
"end": 3355,
"name": "DUP3",
"source": 2
},
{
"begin": 3317,
"end": 3356,
"name": "PUSH [tag]",
"source": 2,
"value": "37"
},
{
"begin": 3317,
"end": 3356,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3317,
"end": 3356,
"name": "tag",
"source": 2,
"value": "76"
},
{
"begin": 3317,
"end": 3356,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3372,
"end": 3443,
"name": "PUSH [tag]",
"source": 2,
"value": "77"
},
{
"begin": 3436,
"end": 3442,
"name": "DUP2",
"source": 2
},
{
"begin": 3431,
"end": 3434,
"name": "DUP6",
"source": 2
},
{
"begin": 3372,
"end": 3443,
"name": "PUSH [tag]",
"source": 2,
"value": "34"
},
{
"begin": 3372,
"end": 3443,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3372,
"end": 3443,
"name": "tag",
"source": 2,
"value": "77"
},
{
"begin": 3372,
"end": 3443,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3365,
"end": 3443,
"name": "SWAP4",
"source": 2
},
{
"begin": 3365,
"end": 3443,
"name": "POP",
"source": 2
},
{
"begin": 3452,
"end": 3504,
"name": "PUSH [tag]",
"source": 2,
"value": "78"
},
{
"begin": 3497,
"end": 3503,
"name": "DUP2",
"source": 2
},
{
"begin": 3492,
"end": 3495,
"name": "DUP6",
"source": 2
},
{
"begin": 3485,
"end": 3489,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 3478,
"end": 3483,
"name": "DUP7",
"source": 2
},
{
"begin": 3474,
"end": 3490,
"name": "ADD",
"source": 2
},
{
"begin": 3452,
"end": 3504,
"name": "PUSH [tag]",
"source": 2,
"value": "38"
},
{
"begin": 3452,
"end": 3504,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3452,
"end": 3504,
"name": "tag",
"source": 2,
"value": "78"
},
{
"begin": 3452,
"end": 3504,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3529,
"end": 3558,
"name": "PUSH [tag]",
"source": 2,
"value": "79"
},
{
"begin": 3551,
"end": 3557,
"name": "DUP2",
"source": 2
},
{
"begin": 3529,
"end": 3558,
"name": "PUSH [tag]",
"source": 2,
"value": "39"
},
{
"begin": 3529,
"end": 3558,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3529,
"end": 3558,
"name": "tag",
"source": 2,
"value": "79"
},
{
"begin": 3529,
"end": 3558,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3524,
"end": 3527,
"name": "DUP5",
"source": 2
},
{
"begin": 3520,
"end": 3559,
"name": "ADD",
"source": 2
},
{
"begin": 3513,
"end": 3559,
"name": "SWAP2",
"source": 2
},
{
"begin": 3513,
"end": 3559,
"name": "POP",
"source": 2
},
{
"begin": 3293,
"end": 3565,
"name": "POP",
"source": 2
},
{
"begin": 3201,
"end": 3565,
"name": "SWAP3",
"source": 2
},
{
"begin": 3201,
"end": 3565,
"name": "SWAP2",
"source": 2
},
{
"begin": 3201,
"end": 3565,
"name": "POP",
"source": 2
},
{
"begin": 3201,
"end": 3565,
"name": "POP",
"source": 2
},
{
"begin": 3201,
"end": 3565,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 3571,
"end": 3994,
"name": "tag",
"source": 2,
"value": "23"
},
{
"begin": 3571,
"end": 3994,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3712,
"end": 3716,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3750,
"end": 3752,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 3739,
"end": 3748,
"name": "DUP3",
"source": 2
},
{
"begin": 3735,
"end": 3753,
"name": "ADD",
"source": 2
},
{
"begin": 3727,
"end": 3753,
"name": "SWAP1",
"source": 2
},
{
"begin": 3727,
"end": 3753,
"name": "POP",
"source": 2
},
{
"begin": 3799,
"end": 3808,
"name": "DUP2",
"source": 2
},
{
"begin": 3793,
"end": 3797,
"name": "DUP2",
"source": 2
},
{
"begin": 3789,
"end": 3809,
"name": "SUB",
"source": 2
},
{
"begin": 3785,
"end": 3786,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3774,
"end": 3783,
"name": "DUP4",
"source": 2
},
{
"begin": 3770,
"end": 3787,
"name": "ADD",
"source": 2
},
{
"begin": 3763,
"end": 3810,
"name": "MSTORE",
"source": 2
},
{
"begin": 3827,
"end": 3905,
"name": "PUSH [tag]",
"source": 2,
"value": "81"
},
{
"begin": 3900,
"end": 3904,
"name": "DUP2",
"source": 2
},
{
"begin": 3891,
"end": 3897,
"name": "DUP6",
"source": 2
},
{
"begin": 3827,
"end": 3905,
"name": "PUSH [tag]",
"source": 2,
"value": "40"
},
{
"begin": 3827,
"end": 3905,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3827,
"end": 3905,
"name": "tag",
"source": 2,
"value": "81"
},
{
"begin": 3827,
"end": 3905,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3819,
"end": 3905,
"name": "SWAP1",
"source": 2
},
{
"begin": 3819,
"end": 3905,
"name": "POP",
"source": 2
},
{
"begin": 3915,
"end": 3987,
"name": "PUSH [tag]",
"source": 2,
"value": "82"
},
{
"begin": 3983,
"end": 3985,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 3972,
"end": 3981,
"name": "DUP4",
"source": 2
},
{
"begin": 3968,
"end": 3986,
"name": "ADD",
"source": 2
},
{
"begin": 3959,
"end": 3965,
"name": "DUP5",
"source": 2
},
{
"begin": 3915,
"end": 3987,
"name": "PUSH [tag]",
"source": 2,
"value": "28"
},
{
"begin": 3915,
"end": 3987,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3915,
"end": 3987,
"name": "tag",
"source": 2,
"value": "82"
},
{
"begin": 3915,
"end": 3987,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3571,
"end": 3994,
"name": "SWAP4",
"source": 2
},
{
"begin": 3571,
"end": 3994,
"name": "SWAP3",
"source": 2
},
{
"begin": 3571,
"end": 3994,
"name": "POP",
"source": 2
},
{
"begin": 3571,
"end": 3994,
"name": "POP",
"source": 2
},
{
"begin": 3571,
"end": 3994,
"name": "POP",
"source": 2
},
{
"begin": 3571,
"end": 3994,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
}
]
}
},
"sourceList": [
"contracts/2_Owner.sol",
"hardhat/console.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"changeOwner(address)": "a6f9dae1",
"getOwner()": "893d20e8"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"changeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Set & change owner\",\"kind\":\"dev\",\"methods\":{\"changeOwner(address)\":{\"details\":\"Change owner\",\"params\":{\"newOwner\":\"address of new owner\"}},\"constructor\":{\"details\":\"Set contract deployer as owner\"},\"getOwner()\":{\"details\":\"Return owner address \",\"returns\":{\"_0\":\"address of owner\"}}},\"title\":\"Owner\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/2_Owner.sol\":\"Owner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/2_Owner.sol\":{\"keccak256\":\"0x78bbbec96c5bc30ed379cb4c7bc96af4af5c71a2ed6cbd7b202097223e055294\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4e78c8bdef7b614a92576df195209a00fcc09bbaa00ec98c0ea29cb2118da1c5\",\"dweb:/ipfs/QmWrv2qJbxtDegicpu5rLGk4LgXvYvo1qXMW7qQpD6vGSX\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x72b6a1d297cd3b033d7c2e4a7e7864934bb767db6453623f1c3082c6534547f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8cb8681076e765c214e0d51cac989325f6b98e315eaae06ee0cbd5a9f084763\",\"dweb:/ipfs/QmNWGHi4zmjxQTYN3NMGnJd49jBT5dE4bxTdWEaDuJrC6N\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 5,
"contract": "contracts/2_Owner.sol:Owner",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
},
"hardhat/console.sol": {
"console": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"hardhat/console.sol\":67:62047 library console {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"hardhat/console.sol\":67:62047 library console {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220a547b644c0d6785d3b059343807b4484ab4963c312cc152754ef8578447574dd64736f6c634300080e0033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a547b644c0d6785d3b059343807b4484ab4963c312cc152754ef8578447574dd64736f6c634300080e0033",
"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 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 0xA5 SELFBALANCE 0xB6 DIFFICULTY 0xC0 0xD6 PUSH25 0x5D3B059343807B4484AB4963C312CC152754EF8578447574DD PUSH5 0x736F6C6343 STOP ADDMOD 0xE STOP CALLER ",
"sourceMap": "67:61980:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a547b644c0d6785d3b059343807b4484ab4963c312cc152754ef8578447574dd64736f6c634300080e0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 SELFBALANCE 0xB6 DIFFICULTY 0xC0 0xD6 PUSH25 0x5D3B059343807B4484AB4963C312CC152754EF8578447574DD PUSH5 0x736F6C6343 STOP ADDMOD 0xE STOP CALLER ",
"sourceMap": "67:61980:1:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"_sendLogPayload(bytes memory)": "infinite",
"log()": "infinite",
"log(address)": "infinite",
"log(address,address)": "infinite",
"log(address,address,address)": "infinite",
"log(address,address,address,address)": "infinite",
"log(address,address,address,bool)": "infinite",
"log(address,address,address,string memory)": "infinite",
"log(address,address,address,uint256)": "infinite",
"log(address,address,bool)": "infinite",
"log(address,address,bool,address)": "infinite",
"log(address,address,bool,bool)": "infinite",
"log(address,address,bool,string memory)": "infinite",
"log(address,address,bool,uint256)": "infinite",
"log(address,address,string memory)": "infinite",
"log(address,address,string memory,address)": "infinite",
"log(address,address,string memory,bool)": "infinite",
"log(address,address,string memory,string memory)": "infinite",
"log(address,address,string memory,uint256)": "infinite",
"log(address,address,uint256)": "infinite",
"log(address,address,uint256,address)": "infinite",
"log(address,address,uint256,bool)": "infinite",
"log(address,address,uint256,string memory)": "infinite",
"log(address,address,uint256,uint256)": "infinite",
"log(address,bool)": "infinite",
"log(address,bool,address)": "infinite",
"log(address,bool,address,address)": "infinite",
"log(address,bool,address,bool)": "infinite",
"log(address,bool,address,string memory)": "infinite",
"log(address,bool,address,uint256)": "infinite",
"log(address,bool,bool)": "infinite",
"log(address,bool,bool,address)": "infinite",
"log(address,bool,bool,bool)": "infinite",
"log(address,bool,bool,string memory)": "infinite",
"log(address,bool,bool,uint256)": "infinite",
"log(address,bool,string memory)": "infinite",
"log(address,bool,string memory,address)": "infinite",
"log(address,bool,string memory,bool)": "infinite",
"log(address,bool,string memory,string memory)": "infinite",
"log(address,bool,string memory,uint256)": "infinite",
"log(address,bool,uint256)": "infinite",
"log(address,bool,uint256,address)": "infinite",
"log(address,bool,uint256,bool)": "infinite",
"log(address,bool,uint256,string memory)": "infinite",
"log(address,bool,uint256,uint256)": "infinite",
"log(address,string memory)": "infinite",
"log(address,string memory,address)": "infinite",
"log(address,string memory,address,address)": "infinite",
"log(address,string memory,address,bool)": "infinite",
"log(address,string memory,address,string memory)": "infinite",
"log(address,string memory,address,uint256)": "infinite",
"log(address,string memory,bool)": "infinite",
"log(address,string memory,bool,address)": "infinite",
"log(address,string memory,bool,bool)": "infinite",
"log(address,string memory,bool,string memory)": "infinite",
"log(address,string memory,bool,uint256)": "infinite",
"log(address,string memory,string memory)": "infinite",
"log(address,string memory,string memory,address)": "infinite",
"log(address,string memory,string memory,bool)": "infinite",
"log(address,string memory,string memory,string memory)": "infinite",
"log(address,string memory,string memory,uint256)": "infinite",
"log(address,string memory,uint256)": "infinite",
"log(address,string memory,uint256,address)": "infinite",
"log(address,string memory,uint256,bool)": "infinite",
"log(address,string memory,uint256,string memory)": "infinite",
"log(address,string memory,uint256,uint256)": "infinite",
"log(address,uint256)": "infinite",
"log(address,uint256,address)": "infinite",
"log(address,uint256,address,address)": "infinite",
"log(address,uint256,address,bool)": "infinite",
"log(address,uint256,address,string memory)": "infinite",
"log(address,uint256,address,uint256)": "infinite",
"log(address,uint256,bool)": "infinite",
"log(address,uint256,bool,address)": "infinite",
"log(address,uint256,bool,bool)": "infinite",
"log(address,uint256,bool,string memory)": "infinite",
"log(address,uint256,bool,uint256)": "infinite",
"log(address,uint256,string memory)": "infinite",
"log(address,uint256,string memory,address)": "infinite",
"log(address,uint256,string memory,bool)": "infinite",
"log(address,uint256,string memory,string memory)": "infinite",
"log(address,uint256,string memory,uint256)": "infinite",
"log(address,uint256,uint256)": "infinite",
"log(address,uint256,uint256,address)": "infinite",
"log(address,uint256,uint256,bool)": "infinite",
"log(address,uint256,uint256,string memory)": "infinite",
"log(address,uint256,uint256,uint256)": "infinite",
"log(bool)": "infinite",
"log(bool,address)": "infinite",
"log(bool,address,address)": "infinite",
"log(bool,address,address,address)": "infinite",
"log(bool,address,address,bool)": "infinite",
"log(bool,address,address,string memory)": "infinite",
"log(bool,address,address,uint256)": "infinite",
"log(bool,address,bool)": "infinite",
"log(bool,address,bool,address)": "infinite",
"log(bool,address,bool,bool)": "infinite",
"log(bool,address,bool,string memory)": "infinite",
"log(bool,address,bool,uint256)": "infinite",
"log(bool,address,string memory)": "infinite",
"log(bool,address,string memory,address)": "infinite",
"log(bool,address,string memory,bool)": "infinite",
"log(bool,address,string memory,string memory)": "infinite",
"log(bool,address,string memory,uint256)": "infinite",
"log(bool,address,uint256)": "infinite",
"log(bool,address,uint256,address)": "infinite",
"log(bool,address,uint256,bool)": "infinite",
"log(bool,address,uint256,string memory)": "infinite",
"log(bool,address,uint256,uint256)": "infinite",
"log(bool,bool)": "infinite",
"log(bool,bool,address)": "infinite",
"log(bool,bool,address,address)": "infinite",
"log(bool,bool,address,bool)": "infinite",
"log(bool,bool,address,string memory)": "infinite",
"log(bool,bool,address,uint256)": "infinite",
"log(bool,bool,bool)": "infinite",
"log(bool,bool,bool,address)": "infinite",
"log(bool,bool,bool,bool)": "infinite",
"log(bool,bool,bool,string memory)": "infinite",
"log(bool,bool,bool,uint256)": "infinite",
"log(bool,bool,string memory)": "infinite",
"log(bool,bool,string memory,address)": "infinite",
"log(bool,bool,string memory,bool)": "infinite",
"log(bool,bool,string memory,string memory)": "infinite",
"log(bool,bool,string memory,uint256)": "infinite",
"log(bool,bool,uint256)": "infinite",
"log(bool,bool,uint256,address)": "infinite",
"log(bool,bool,uint256,bool)": "infinite",
"log(bool,bool,uint256,string memory)": "infinite",
"log(bool,bool,uint256,uint256)": "infinite",
"log(bool,string memory)": "infinite",
"log(bool,string memory,address)": "infinite",
"log(bool,string memory,address,address)": "infinite",
"log(bool,string memory,address,bool)": "infinite",
"log(bool,string memory,address,string memory)": "infinite",
"log(bool,string memory,address,uint256)": "infinite",
"log(bool,string memory,bool)": "infinite",
"log(bool,string memory,bool,address)": "infinite",
"log(bool,string memory,bool,bool)": "infinite",
"log(bool,string memory,bool,string memory)": "infinite",
"log(bool,string memory,bool,uint256)": "infinite",
"log(bool,string memory,string memory)": "infinite",
"log(bool,string memory,string memory,address)": "infinite",
"log(bool,string memory,string memory,bool)": "infinite",
"log(bool,string memory,string memory,string memory)": "infinite",
"log(bool,string memory,string memory,uint256)": "infinite",
"log(bool,string memory,uint256)": "infinite",
"log(bool,string memory,uint256,address)": "infinite",
"log(bool,string memory,uint256,bool)": "infinite",
"log(bool,string memory,uint256,string memory)": "infinite",
"log(bool,string memory,uint256,uint256)": "infinite",
"log(bool,uint256)": "infinite",
"log(bool,uint256,address)": "infinite",
"log(bool,uint256,address,address)": "infinite",
"log(bool,uint256,address,bool)": "infinite",
"log(bool,uint256,address,string memory)": "infinite",
"log(bool,uint256,address,uint256)": "infinite",
"log(bool,uint256,bool)": "infinite",
"log(bool,uint256,bool,address)": "infinite",
"log(bool,uint256,bool,bool)": "infinite",
"log(bool,uint256,bool,string memory)": "infinite",
"log(bool,uint256,bool,uint256)": "infinite",
"log(bool,uint256,string memory)": "infinite",
"log(bool,uint256,string memory,address)": "infinite",
"log(bool,uint256,string memory,bool)": "infinite",
"log(bool,uint256,string memory,string memory)": "infinite",
"log(bool,uint256,string memory,uint256)": "infinite",
"log(bool,uint256,uint256)": "infinite",
"log(bool,uint256,uint256,address)": "infinite",
"log(bool,uint256,uint256,bool)": "infinite",
"log(bool,uint256,uint256,string memory)": "infinite",
"log(bool,uint256,uint256,uint256)": "infinite",
"log(string memory)": "infinite",
"log(string memory,address)": "infinite",
"log(string memory,address,address)": "infinite",
"log(string memory,address,address,address)": "infinite",
"log(string memory,address,address,bool)": "infinite",
"log(string memory,address,address,string memory)": "infinite",
"log(string memory,address,address,uint256)": "infinite",
"log(string memory,address,bool)": "infinite",
"log(string memory,address,bool,address)": "infinite",
"log(string memory,address,bool,bool)": "infinite",
"log(string memory,address,bool,string memory)": "infinite",
"log(string memory,address,bool,uint256)": "infinite",
"log(string memory,address,string memory)": "infinite",
"log(string memory,address,string memory,address)": "infinite",
"log(string memory,address,string memory,bool)": "infinite",
"log(string memory,address,string memory,string memory)": "infinite",
"log(string memory,address,string memory,uint256)": "infinite",
"log(string memory,address,uint256)": "infinite",
"log(string memory,address,uint256,address)": "infinite",
"log(string memory,address,uint256,bool)": "infinite",
"log(string memory,address,uint256,string memory)": "infinite",
"log(string memory,address,uint256,uint256)": "infinite",
"log(string memory,bool)": "infinite",
"log(string memory,bool,address)": "infinite",
"log(string memory,bool,address,address)": "infinite",
"log(string memory,bool,address,bool)": "infinite",
"log(string memory,bool,address,string memory)": "infinite",
"log(string memory,bool,address,uint256)": "infinite",
"log(string memory,bool,bool)": "infinite",
"log(string memory,bool,bool,address)": "infinite",
"log(string memory,bool,bool,bool)": "infinite",
"log(string memory,bool,bool,string memory)": "infinite",
"log(string memory,bool,bool,uint256)": "infinite",
"log(string memory,bool,string memory)": "infinite",
"log(string memory,bool,string memory,address)": "infinite",
"log(string memory,bool,string memory,bool)": "infinite",
"log(string memory,bool,string memory,string memory)": "infinite",
"log(string memory,bool,string memory,uint256)": "infinite",
"log(string memory,bool,uint256)": "infinite",
"log(string memory,bool,uint256,address)": "infinite",
"log(string memory,bool,uint256,bool)": "infinite",
"log(string memory,bool,uint256,string memory)": "infinite",
"log(string memory,bool,uint256,uint256)": "infinite",
"log(string memory,string memory)": "infinite",
"log(string memory,string memory,address)": "infinite",
"log(string memory,string memory,address,address)": "infinite",
"log(string memory,string memory,address,bool)": "infinite",
"log(string memory,string memory,address,string memory)": "infinite",
"log(string memory,string memory,address,uint256)": "infinite",
"log(string memory,string memory,bool)": "infinite",
"log(string memory,string memory,bool,address)": "infinite",
"log(string memory,string memory,bool,bool)": "infinite",
"log(string memory,string memory,bool,string memory)": "infinite",
"log(string memory,string memory,bool,uint256)": "infinite",
"log(string memory,string memory,string memory)": "infinite",
"log(string memory,string memory,string memory,address)": "infinite",
"log(string memory,string memory,string memory,bool)": "infinite",
"log(string memory,string memory,string memory,string memory)": "infinite",
"log(string memory,string memory,string memory,uint256)": "infinite",
"log(string memory,string memory,uint256)": "infinite",
"log(string memory,string memory,uint256,address)": "infinite",
"log(string memory,string memory,uint256,bool)": "infinite",
"log(string memory,string memory,uint256,string memory)": "infinite",
"log(string memory,string memory,uint256,uint256)": "infinite",
"log(string memory,uint256)": "infinite",
"log(string memory,uint256,address)": "infinite",
"log(string memory,uint256,address,address)": "infinite",
"log(string memory,uint256,address,bool)": "infinite",
"log(string memory,uint256,address,string memory)": "infinite",
"log(string memory,uint256,address,uint256)": "infinite",
"log(string memory,uint256,bool)": "infinite",
"log(string memory,uint256,bool,address)": "infinite",
"log(string memory,uint256,bool,bool)": "infinite",
"log(string memory,uint256,bool,string memory)": "infinite",
"log(string memory,uint256,bool,uint256)": "infinite",
"log(string memory,uint256,string memory)": "infinite",
"log(string memory,uint256,string memory,address)": "infinite",
"log(string memory,uint256,string memory,bool)": "infinite",
"log(string memory,uint256,string memory,string memory)": "infinite",
"log(string memory,uint256,string memory,uint256)": "infinite",
"log(string memory,uint256,uint256)": "infinite",
"log(string memory,uint256,uint256,address)": "infinite",
"log(string memory,uint256,uint256,bool)": "infinite",
"log(string memory,uint256,uint256,string memory)": "infinite",
"log(string memory,uint256,uint256,uint256)": "infinite",
"log(uint256)": "infinite",
"log(uint256,address)": "infinite",
"log(uint256,address,address)": "infinite",
"log(uint256,address,address,address)": "infinite",
"log(uint256,address,address,bool)": "infinite",
"log(uint256,address,address,string memory)": "infinite",
"log(uint256,address,address,uint256)": "infinite",
"log(uint256,address,bool)": "infinite",
"log(uint256,address,bool,address)": "infinite",
"log(uint256,address,bool,bool)": "infinite",
"log(uint256,address,bool,string memory)": "infinite",
"log(uint256,address,bool,uint256)": "infinite",
"log(uint256,address,string memory)": "infinite",
"log(uint256,address,string memory,address)": "infinite",
"log(uint256,address,string memory,bool)": "infinite",
"log(uint256,address,string memory,string memory)": "infinite",
"log(uint256,address,string memory,uint256)": "infinite",
"log(uint256,address,uint256)": "infinite",
"log(uint256,address,uint256,address)": "infinite",
"log(uint256,address,uint256,bool)": "infinite",
"log(uint256,address,uint256,string memory)": "infinite",
"log(uint256,address,uint256,uint256)": "infinite",
"log(uint256,bool)": "infinite",
"log(uint256,bool,address)": "infinite",
"log(uint256,bool,address,address)": "infinite",
"log(uint256,bool,address,bool)": "infinite",
"log(uint256,bool,address,string memory)": "infinite",
"log(uint256,bool,address,uint256)": "infinite",
"log(uint256,bool,bool)": "infinite",
"log(uint256,bool,bool,address)": "infinite",
"log(uint256,bool,bool,bool)": "infinite",
"log(uint256,bool,bool,string memory)": "infinite",
"log(uint256,bool,bool,uint256)": "infinite",
"log(uint256,bool,string memory)": "infinite",
"log(uint256,bool,string memory,address)": "infinite",
"log(uint256,bool,string memory,bool)": "infinite",
"log(uint256,bool,string memory,string memory)": "infinite",
"log(uint256,bool,string memory,uint256)": "infinite",
"log(uint256,bool,uint256)": "infinite",
"log(uint256,bool,uint256,address)": "infinite",
"log(uint256,bool,uint256,bool)": "infinite",
"log(uint256,bool,uint256,string memory)": "infinite",
"log(uint256,bool,uint256,uint256)": "infinite",
"log(uint256,string memory)": "infinite",
"log(uint256,string memory,address)": "infinite",
"log(uint256,string memory,address,address)": "infinite",
"log(uint256,string memory,address,bool)": "infinite",
"log(uint256,string memory,address,string memory)": "infinite",
"log(uint256,string memory,address,uint256)": "infinite",
"log(uint256,string memory,bool)": "infinite",
"log(uint256,string memory,bool,address)": "infinite",
"log(uint256,string memory,bool,bool)": "infinite",
"log(uint256,string memory,bool,string memory)": "infinite",
"log(uint256,string memory,bool,uint256)": "infinite",
"log(uint256,string memory,string memory)": "infinite",
"log(uint256,string memory,string memory,address)": "infinite",
"log(uint256,string memory,string memory,bool)": "infinite",
"log(uint256,string memory,string memory,string memory)": "infinite",
"log(uint256,string memory,string memory,uint256)": "infinite",
"log(uint256,string memory,uint256)": "infinite",
"log(uint256,string memory,uint256,address)": "infinite",
"log(uint256,string memory,uint256,bool)": "infinite",
"log(uint256,string memory,uint256,string memory)": "infinite",
"log(uint256,string memory,uint256,uint256)": "infinite",
"log(uint256,uint256)": "infinite",
"log(uint256,uint256,address)": "infinite",
"log(uint256,uint256,address,address)": "infinite",
"log(uint256,uint256,address,bool)": "infinite",
"log(uint256,uint256,address,string memory)": "infinite",
"log(uint256,uint256,address,uint256)": "infinite",
"log(uint256,uint256,bool)": "infinite",
"log(uint256,uint256,bool,address)": "infinite",
"log(uint256,uint256,bool,bool)": "infinite",
"log(uint256,uint256,bool,string memory)": "infinite",
"log(uint256,uint256,bool,uint256)": "infinite",
"log(uint256,uint256,string memory)": "infinite",
"log(uint256,uint256,string memory,address)": "infinite",
"log(uint256,uint256,string memory,bool)": "infinite",
"log(uint256,uint256,string memory,string memory)": "infinite",
"log(uint256,uint256,string memory,uint256)": "infinite",
"log(uint256,uint256,uint256)": "infinite",
"log(uint256,uint256,uint256,address)": "infinite",
"log(uint256,uint256,uint256,bool)": "infinite",
"log(uint256,uint256,uint256,string memory)": "infinite",
"log(uint256,uint256,uint256,uint256)": "infinite",
"logAddress(address)": "infinite",
"logBool(bool)": "infinite",
"logBytes(bytes memory)": "infinite",
"logBytes1(bytes1)": "infinite",
"logBytes10(bytes10)": "infinite",
"logBytes11(bytes11)": "infinite",
"logBytes12(bytes12)": "infinite",
"logBytes13(bytes13)": "infinite",
"logBytes14(bytes14)": "infinite",
"logBytes15(bytes15)": "infinite",
"logBytes16(bytes16)": "infinite",
"logBytes17(bytes17)": "infinite",
"logBytes18(bytes18)": "infinite",
"logBytes19(bytes19)": "infinite",
"logBytes2(bytes2)": "infinite",
"logBytes20(bytes20)": "infinite",
"logBytes21(bytes21)": "infinite",
"logBytes22(bytes22)": "infinite",
"logBytes23(bytes23)": "infinite",
"logBytes24(bytes24)": "infinite",
"logBytes25(bytes25)": "infinite",
"logBytes26(bytes26)": "infinite",
"logBytes27(bytes27)": "infinite",
"logBytes28(bytes28)": "infinite",
"logBytes29(bytes29)": "infinite",
"logBytes3(bytes3)": "infinite",
"logBytes30(bytes30)": "infinite",
"logBytes31(bytes31)": "infinite",
"logBytes32(bytes32)": "infinite",
"logBytes4(bytes4)": "infinite",
"logBytes5(bytes5)": "infinite",
"logBytes6(bytes6)": "infinite",
"logBytes7(bytes7)": "infinite",
"logBytes8(bytes8)": "infinite",
"logBytes9(bytes9)": "infinite",
"logInt(int256)": "infinite",
"logString(string memory)": "infinite",
"logUint(uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 67,
"end": 62047,
"name": "PUSH #[$]",
"source": 1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 67,
"end": 62047,
"name": "PUSH [$]",
"source": 1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "B"
},
{
"begin": 67,
"end": 62047,
"name": "DUP3",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "DUP3",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "DUP3",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "CODECOPY",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "DUP1",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "MLOAD",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 67,
"end": 62047,
"name": "BYTE",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "73"
},
{
"begin": 67,
"end": 62047,
"name": "EQ",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH [tag]",
"source": 1,
"value": "1"
},
{
"begin": 67,
"end": 62047,
"name": "JUMPI",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 67,
"end": 62047,
"name": "MSTORE",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 67,
"end": 62047,
"name": "MSTORE",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 67,
"end": 62047,
"name": "REVERT",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "tag",
"source": 1,
"value": "1"
},
{
"begin": 67,
"end": 62047,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "ADDRESS",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 67,
"end": 62047,
"name": "MSTORE",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "73"
},
{
"begin": 67,
"end": 62047,
"name": "DUP2",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "MSTORE8",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "DUP3",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "DUP2",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "RETURN",
"source": 1
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220a547b644c0d6785d3b059343807b4484ab4963c312cc152754ef8578447574dd64736f6c634300080e0033",
".code": [
{
"begin": 67,
"end": 62047,
"name": "PUSHDEPLOYADDRESS",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "ADDRESS",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "EQ",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "80"
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 67,
"end": 62047,
"name": "MSTORE",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 67,
"end": 62047,
"name": "DUP1",
"source": 1
},
{
"begin": 67,
"end": 62047,
"name": "REVERT",
"source": 1
}
]
}
},
"sourceList": [
"contracts/2_Owner.sol",
"hardhat/console.sol",
"#utility.yul"
]
},
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat/console.sol\":\"console\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat/console.sol\":{\"keccak256\":\"0x72b6a1d297cd3b033d7c2e4a7e7864934bb767db6453623f1c3082c6534547f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8cb8681076e765c214e0d51cac989325f6b98e315eaae06ee0cbd5a9f084763\",\"dweb:/ipfs/QmNWGHi4zmjxQTYN3NMGnJd49jBT5dE4bxTdWEaDuJrC6N\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contracts/2_Owner.sol": {
"ast": {
"absolutePath": "contracts/2_Owner.sol",
"exportedSymbols": {
"Owner": [
77
],
"console": [
8141
]
},
"id": 78,
"license": "GPL-3.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
">=",
"0.7",
".0",
"<",
"0.9",
".0"
],
"nodeType": "PragmaDirective",
"src": "37:31:0"
},
{
"absolutePath": "hardhat/console.sol",
"file": "hardhat/console.sol",
"id": 2,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 78,
"sourceUnit": 8142,
"src": "70:29:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "Owner",
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 3,
"nodeType": "StructuredDocumentation",
"src": "101:50:0",
"text": " @title Owner\n @dev Set & change owner"
},
"fullyImplemented": true,
"id": 77,
"linearizedBaseContracts": [
77
],
"name": "Owner",
"nameLocation": "161:5:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 5,
"mutability": "mutable",
"name": "owner",
"nameLocation": "190:5:0",
"nodeType": "VariableDeclaration",
"scope": 77,
"src": "174:21:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "174:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "private"
},
{
"anonymous": false,
"eventSelector": "342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735",
"id": 11,
"name": "OwnerSet",
"nameLocation": "237:8:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 10,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7,
"indexed": true,
"mutability": "mutable",
"name": "oldOwner",
"nameLocation": "262:8:0",
"nodeType": "VariableDeclaration",
"scope": 11,
"src": "246:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "246:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9,
"indexed": true,
"mutability": "mutable",
"name": "newOwner",
"nameLocation": "288:8:0",
"nodeType": "VariableDeclaration",
"scope": 11,
"src": "272:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "272:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "245:52:0"
},
"src": "231:67:0"
},
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "367:510:0",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 17,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 14,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "816:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 15,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "816:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 16,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "830:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "816:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "43616c6c6572206973206e6f74206f776e6572",
"id": 18,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "837:21:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"typeString": "literal_string \"Caller is not owner\""
},
"value": "Caller is not owner"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"typeString": "literal_string \"Caller is not owner\""
}
],
"id": 13,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "808:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "808:51:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20,
"nodeType": "ExpressionStatement",
"src": "808:51:0"
},
{
"id": 21,
"nodeType": "PlaceholderStatement",
"src": "869:1:0"
}
]
},
"id": 23,
"name": "isOwner",
"nameLocation": "357:7:0",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 12,
"nodeType": "ParameterList",
"parameters": [],
"src": "364:2:0"
},
"src": "348:529:0",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 48,
"nodeType": "Block",
"src": "956:220:0",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "4f776e657220636f6e7472616374206465706c6f7965642062793a",
"id": 30,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "978:29:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a0cbe754c44222da79bf647e45aed62ef67ec32aef9a5176ca1ce7c0e9365903",
"typeString": "literal_string \"Owner contract deployed by:\""
},
"value": "Owner contract deployed by:"
},
{
"expression": {
"id": 31,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "1009:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "1009:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_a0cbe754c44222da79bf647e45aed62ef67ec32aef9a5176ca1ce7c0e9365903",
"typeString": "literal_string \"Owner contract deployed by:\""
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 27,
"name": "console",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8141,
"src": "966:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_console_$8141_$",
"typeString": "type(library console)"
}
},
"id": 29,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "log",
"nodeType": "MemberAccess",
"referencedDeclaration": 836,
"src": "966:11:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$",
"typeString": "function (string memory,address) view"
}
},
"id": 33,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "966:54:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 34,
"nodeType": "ExpressionStatement",
"src": "966:54:0"
},
{
"expression": {
"id": 38,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 35,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1030:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 36,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "1038:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 37,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "1038:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1030:18:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 39,
"nodeType": "ExpressionStatement",
"src": "1030:18:0"
},
{
"eventCall": {
"arguments": [
{
"arguments": [
{
"hexValue": "30",
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1159:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1151:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 41,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1151:7:0",
"typeDescriptions": {}
}
},
"id": 44,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1151:10:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 45,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1163:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 40,
"name": "OwnerSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11,
"src": "1142:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address)"
}
},
"id": 46,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1142:27:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 47,
"nodeType": "EmitStatement",
"src": "1137:32:0"
}
]
},
"documentation": {
"id": 24,
"nodeType": "StructuredDocumentation",
"src": "883:54:0",
"text": " @dev Set contract deployer as owner"
},
"id": 49,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 25,
"nodeType": "ParameterList",
"parameters": [],
"src": "953:2:0"
},
"returnParameters": {
"id": 26,
"nodeType": "ParameterList",
"parameters": [],
"src": "956:0:0"
},
"scope": 77,
"src": "942:234:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 66,
"nodeType": "Block",
"src": "1321:73:0",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 58,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1345:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 59,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52,
"src": "1352:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 57,
"name": "OwnerSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11,
"src": "1336:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address)"
}
},
"id": 60,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1336:25:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61,
"nodeType": "EmitStatement",
"src": "1331:30:0"
},
{
"expression": {
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 62,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1371:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 63,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52,
"src": "1379:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1371:16:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 65,
"nodeType": "ExpressionStatement",
"src": "1371:16:0"
}
]
},
"documentation": {
"id": 50,
"nodeType": "StructuredDocumentation",
"src": "1182:80:0",
"text": " @dev Change owner\n @param newOwner address of new owner"
},
"functionSelector": "a6f9dae1",
"id": 67,
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 55,
"kind": "modifierInvocation",
"modifierName": {
"id": 54,
"name": "isOwner",
"nodeType": "IdentifierPath",
"referencedDeclaration": 23,
"src": "1313:7:0"
},
"nodeType": "ModifierInvocation",
"src": "1313:7:0"
}
],
"name": "changeOwner",
"nameLocation": "1276:11:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 53,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52,
"mutability": "mutable",
"name": "newOwner",
"nameLocation": "1296:8:0",
"nodeType": "VariableDeclaration",
"scope": 67,
"src": "1288:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 51,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1288:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1287:18:0"
},
"returnParameters": {
"id": 56,
"nodeType": "ParameterList",
"parameters": [],
"src": "1321:0:0"
},
"scope": 77,
"src": "1267:127:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 75,
"nodeType": "Block",
"src": "1534:29:0",
"statements": [
{
"expression": {
"id": 73,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1551:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 72,
"id": 74,
"nodeType": "Return",
"src": "1544:12:0"
}
]
},
"documentation": {
"id": 68,
"nodeType": "StructuredDocumentation",
"src": "1400:77:0",
"text": " @dev Return owner address \n @return address of owner"
},
"functionSelector": "893d20e8",
"id": 76,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getOwner",
"nameLocation": "1491:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 69,
"nodeType": "ParameterList",
"parameters": [],
"src": "1499:2:0"
},
"returnParameters": {
"id": 72,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 71,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 76,
"src": "1525:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 70,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1525:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1524:9:0"
},
"scope": 77,
"src": "1482:81:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 78,
"src": "152:1413:0",
"usedErrors": []
}
],
"src": "37:1529:0"
},
"id": 0
},
"hardhat/console.sol": {
"ast": {
"absolutePath": "hardhat/console.sol",
"exportedSymbols": {
"console": [
8141
]
},
"id": 8142,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 79,
"literals": [
"solidity",
">=",
"0.4",
".22",
"<",
"0.9",
".0"
],
"nodeType": "PragmaDirective",
"src": "32:33:1"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "console",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"id": 8141,
"linearizedBaseContracts": [
8141
],
"name": "console",
"nameLocation": "75:7:1",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 85,
"mutability": "constant",
"name": "CONSOLE_ADDRESS",
"nameLocation": "103:15:1",
"nodeType": "VariableDeclaration",
"scope": 8141,
"src": "86:86:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 80,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "86:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": {
"arguments": [
{
"hexValue": "307830303030303030303030303030303030303036333646366537333646366336353265366336663637",
"id": 83,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "129:42:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"value": "0x000000000000000000636F6e736F6c652e6c6f67"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 82,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "121:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 81,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "121:7:1",
"typeDescriptions": {}
}
},
"id": 84,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "121:51:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"body": {
"id": 100,
"nodeType": "Block",
"src": "236:228:1",
"statements": [
{
"assignments": [
91
],
"declarations": [
{
"constant": false,
"id": 91,
"mutability": "mutable",
"name": "payloadLength",
"nameLocation": "248:13:1",
"nodeType": "VariableDeclaration",
"scope": 100,
"src": "240:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 90,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "240:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 94,
"initialValue": {
"expression": {
"id": 92,
"name": "payload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 87,
"src": "264:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"src": "264:14:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "240:38:1"
},
{
"assignments": [
96
],
"declarations": [
{
"constant": false,
"id": 96,
"mutability": "mutable",
"name": "consoleAddress",
"nameLocation": "290:14:1",
"nodeType": "VariableDeclaration",
"scope": 100,
"src": "282:22:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 95,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "282:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 98,
"initialValue": {
"id": 97,
"name": "CONSOLE_ADDRESS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "307:15:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "282:40:1"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "335:126:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "340:36:1",
"value": {
"arguments": [
{
"name": "payload",
"nodeType": "YulIdentifier",
"src": "364:7:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "373:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "360:3:1"
},
"nodeType": "YulFunctionCall",
"src": "360:16:1"
},
"variables": [
{
"name": "payloadStart",
"nodeType": "YulTypedName",
"src": "344:12:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "380:77:1",
"value": {
"arguments": [
{
"arguments": [],
"functionName": {
"name": "gas",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:5:1"
},
{
"name": "consoleAddress",
"nodeType": "YulIdentifier",
"src": "407:14:1"
},
{
"name": "payloadStart",
"nodeType": "YulIdentifier",
"src": "423:12:1"
},
{
"name": "payloadLength",
"nodeType": "YulIdentifier",
"src": "437:13:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "452:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "455:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "staticcall",
"nodeType": "YulIdentifier",
"src": "389:10:1"
},
"nodeType": "YulFunctionCall",
"src": "389:68:1"
},
"variables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "384:1:1",
"type": ""
}
]
}
]
},
"evmVersion": "london",
"externalReferences": [
{
"declaration": 96,
"isOffset": false,
"isSlot": false,
"src": "407:14:1",
"valueSize": 1
},
{
"declaration": 87,
"isOffset": false,
"isSlot": false,
"src": "364:7:1",
"valueSize": 1
},
{
"declaration": 91,
"isOffset": false,
"isSlot": false,
"src": "437:13:1",
"valueSize": 1
}
],
"id": 99,
"nodeType": "InlineAssembly",
"src": "326:135:1"
}
]
},
"id": 101,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_sendLogPayload",
"nameLocation": "185:15:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 88,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 87,
"mutability": "mutable",
"name": "payload",
"nameLocation": "214:7:1",
"nodeType": "VariableDeclaration",
"scope": 101,
"src": "201:20:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 86,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "201:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "200:22:1"
},
"returnParameters": {
"id": 89,
"nodeType": "ParameterList",
"parameters": [],
"src": "236:0:1"
},
"scope": 8141,
"src": "176:288:1",
"stateMutability": "view",
"virtual": false,
"visibility": "private"
},
{
"body": {
"id": 111,
"nodeType": "Block",
"src": "496:57:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672829",
"id": 107,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "540:7:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39",
"typeString": "literal_string \"log()\""
},
"value": "log()"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39",
"typeString": "literal_string \"log()\""
}
],
"expression": {
"id": 105,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "516:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 106,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "516:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 108,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "516:32:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 104,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "500:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "500:49:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 110,
"nodeType": "ExpressionStatement",
"src": "500:49:1"
}
]
},
"id": 112,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "log",
"nameLocation": "476:3:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 102,
"nodeType": "ParameterList",
"parameters": [],
"src": "479:2:1"
},
"returnParameters": {
"id": 103,
"nodeType": "ParameterList",
"parameters": [],
"src": "496:0:1"
},
"scope": 8141,
"src": "467:86:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 125,
"nodeType": "Block",
"src": "594:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f6728696e7429",
"id": 120,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "638:10:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e",
"typeString": "literal_string \"log(int)\""
},
"value": "log(int)"
},
{
"id": 121,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 114,
"src": "650:2:1",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e",
"typeString": "literal_string \"log(int)\""
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"expression": {
"id": 118,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "614:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 119,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "614:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 122,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "614:39:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 117,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "598:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "598:56:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 124,
"nodeType": "ExpressionStatement",
"src": "598:56:1"
}
]
},
"id": 126,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logInt",
"nameLocation": "565:6:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 115,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 114,
"mutability": "mutable",
"name": "p0",
"nameLocation": "576:2:1",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "572:6:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 113,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "572:3:1",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "571:8:1"
},
"returnParameters": {
"id": 116,
"nodeType": "ParameterList",
"parameters": [],
"src": "594:0:1"
},
"scope": 8141,
"src": "556:102:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 139,
"nodeType": "Block",
"src": "701:65:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672875696e7429",
"id": 134,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "745:11:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984",
"typeString": "literal_string \"log(uint)\""
},
"value": "log(uint)"
},
{
"id": 135,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 128,
"src": "758:2:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984",
"typeString": "literal_string \"log(uint)\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 132,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "721:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 133,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "721:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 136,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "721:40:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 131,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "705:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 137,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "705:57:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 138,
"nodeType": "ExpressionStatement",
"src": "705:57:1"
}
]
},
"id": 140,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logUint",
"nameLocation": "670:7:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 129,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 128,
"mutability": "mutable",
"name": "p0",
"nameLocation": "683:2:1",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "678:7:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 127,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "678:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "677:9:1"
},
"returnParameters": {
"id": 130,
"nodeType": "ParameterList",
"parameters": [],
"src": "701:0:1"
},
"scope": 8141,
"src": "661:105:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 153,
"nodeType": "Block",
"src": "820:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f6728737472696e6729",
"id": 148,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "864:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50",
"typeString": "literal_string \"log(string)\""
},
"value": "log(string)"
},
{
"id": 149,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "879:2:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50",
"typeString": "literal_string \"log(string)\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 146,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "840:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 147,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "840:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "840:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 145,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "824:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 151,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "824:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 152,
"nodeType": "ExpressionStatement",
"src": "824:59:1"
}
]
},
"id": 154,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logString",
"nameLocation": "778:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 143,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 142,
"mutability": "mutable",
"name": "p0",
"nameLocation": "802:2:1",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "788:16:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 141,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "788:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "787:18:1"
},
"returnParameters": {
"id": 144,
"nodeType": "ParameterList",
"parameters": [],
"src": "820:0:1"
},
"scope": 8141,
"src": "769:118:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 167,
"nodeType": "Block",
"src": "930:65:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f6728626f6f6c29",
"id": 162,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "974:11:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7",
"typeString": "literal_string \"log(bool)\""
},
"value": "log(bool)"
},
{
"id": 163,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 156,
"src": "987:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7",
"typeString": "literal_string \"log(bool)\""
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"expression": {
"id": 160,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "950:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 161,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "950:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 164,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "950:40:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 159,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "934:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 165,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "934:57:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 166,
"nodeType": "ExpressionStatement",
"src": "934:57:1"
}
]
},
"id": 168,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBool",
"nameLocation": "899:7:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 157,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 156,
"mutability": "mutable",
"name": "p0",
"nameLocation": "912:2:1",
"nodeType": "VariableDeclaration",
"scope": 168,
"src": "907:7:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 155,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "907:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "906:9:1"
},
"returnParameters": {
"id": 158,
"nodeType": "ParameterList",
"parameters": [],
"src": "930:0:1"
},
"scope": 8141,
"src": "890:105:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 181,
"nodeType": "Block",
"src": "1044:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286164647265737329",
"id": 176,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1088:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428",
"typeString": "literal_string \"log(address)\""
},
"value": "log(address)"
},
{
"id": 177,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 170,
"src": "1104:2:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428",
"typeString": "literal_string \"log(address)\""
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 174,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1064:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 175,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1064:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 178,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1064:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 173,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1048:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 179,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1048:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 180,
"nodeType": "ExpressionStatement",
"src": "1048:60:1"
}
]
},
"id": 182,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logAddress",
"nameLocation": "1007:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 171,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 170,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1026:2:1",
"nodeType": "VariableDeclaration",
"scope": 182,
"src": "1018:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 169,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1018:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1017:12:1"
},
"returnParameters": {
"id": 172,
"nodeType": "ParameterList",
"parameters": [],
"src": "1044:0:1"
},
"scope": 8141,
"src": "998:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 195,
"nodeType": "Block",
"src": "1164:66:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f6728627974657329",
"id": 190,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1208:12:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238",
"typeString": "literal_string \"log(bytes)\""
},
"value": "log(bytes)"
},
{
"id": 191,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 184,
"src": "1222:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238",
"typeString": "literal_string \"log(bytes)\""
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 188,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1184:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 189,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1184:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 192,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1184:41:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 187,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1168:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 193,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1168:58:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 194,
"nodeType": "ExpressionStatement",
"src": "1168:58:1"
}
]
},
"id": 196,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes",
"nameLocation": "1124:8:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 185,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 184,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1146:2:1",
"nodeType": "VariableDeclaration",
"scope": 196,
"src": "1133:15:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 183,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1133:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "1132:17:1"
},
"returnParameters": {
"id": 186,
"nodeType": "ParameterList",
"parameters": [],
"src": "1164:0:1"
},
"scope": 8141,
"src": "1115:115:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 209,
"nodeType": "Block",
"src": "1277:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733129",
"id": 204,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1321:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041",
"typeString": "literal_string \"log(bytes1)\""
},
"value": "log(bytes1)"
},
{
"id": 205,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 198,
"src": "1336:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041",
"typeString": "literal_string \"log(bytes1)\""
},
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"expression": {
"id": 202,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1297:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 203,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1297:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 206,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1297:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 201,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1281:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 207,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1281:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 208,
"nodeType": "ExpressionStatement",
"src": "1281:59:1"
}
]
},
"id": 210,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes1",
"nameLocation": "1242:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 199,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 198,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1259:2:1",
"nodeType": "VariableDeclaration",
"scope": 210,
"src": "1252:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"typeName": {
"id": 197,
"name": "bytes1",
"nodeType": "ElementaryTypeName",
"src": "1252:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"visibility": "internal"
}
],
"src": "1251:11:1"
},
"returnParameters": {
"id": 200,
"nodeType": "ParameterList",
"parameters": [],
"src": "1277:0:1"
},
"scope": 8141,
"src": "1233:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 223,
"nodeType": "Block",
"src": "1391:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733229",
"id": 218,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1435:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224",
"typeString": "literal_string \"log(bytes2)\""
},
"value": "log(bytes2)"
},
{
"id": 219,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 212,
"src": "1450:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes2",
"typeString": "bytes2"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224",
"typeString": "literal_string \"log(bytes2)\""
},
{
"typeIdentifier": "t_bytes2",
"typeString": "bytes2"
}
],
"expression": {
"id": 216,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1411:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 217,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1411:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1411:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 215,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1395:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 221,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1395:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 222,
"nodeType": "ExpressionStatement",
"src": "1395:59:1"
}
]
},
"id": 224,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes2",
"nameLocation": "1356:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 213,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 212,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1373:2:1",
"nodeType": "VariableDeclaration",
"scope": 224,
"src": "1366:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes2",
"typeString": "bytes2"
},
"typeName": {
"id": 211,
"name": "bytes2",
"nodeType": "ElementaryTypeName",
"src": "1366:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes2",
"typeString": "bytes2"
}
},
"visibility": "internal"
}
],
"src": "1365:11:1"
},
"returnParameters": {
"id": 214,
"nodeType": "ParameterList",
"parameters": [],
"src": "1391:0:1"
},
"scope": 8141,
"src": "1347:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 237,
"nodeType": "Block",
"src": "1505:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733329",
"id": 232,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1549:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee",
"typeString": "literal_string \"log(bytes3)\""
},
"value": "log(bytes3)"
},
{
"id": 233,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 226,
"src": "1564:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes3",
"typeString": "bytes3"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee",
"typeString": "literal_string \"log(bytes3)\""
},
{
"typeIdentifier": "t_bytes3",
"typeString": "bytes3"
}
],
"expression": {
"id": 230,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1525:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 231,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1525:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 234,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1525:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 229,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1509:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1509:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 236,
"nodeType": "ExpressionStatement",
"src": "1509:59:1"
}
]
},
"id": 238,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes3",
"nameLocation": "1470:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 227,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 226,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1487:2:1",
"nodeType": "VariableDeclaration",
"scope": 238,
"src": "1480:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes3",
"typeString": "bytes3"
},
"typeName": {
"id": 225,
"name": "bytes3",
"nodeType": "ElementaryTypeName",
"src": "1480:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes3",
"typeString": "bytes3"
}
},
"visibility": "internal"
}
],
"src": "1479:11:1"
},
"returnParameters": {
"id": 228,
"nodeType": "ParameterList",
"parameters": [],
"src": "1505:0:1"
},
"scope": 8141,
"src": "1461:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 251,
"nodeType": "Block",
"src": "1619:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733429",
"id": 246,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1663:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55",
"typeString": "literal_string \"log(bytes4)\""
},
"value": "log(bytes4)"
},
{
"id": 247,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 240,
"src": "1678:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55",
"typeString": "literal_string \"log(bytes4)\""
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"id": 244,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1639:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 245,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1639:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 248,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1639:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 243,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1623:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 249,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1623:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 250,
"nodeType": "ExpressionStatement",
"src": "1623:59:1"
}
]
},
"id": 252,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes4",
"nameLocation": "1584:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 241,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 240,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1601:2:1",
"nodeType": "VariableDeclaration",
"scope": 252,
"src": "1594:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 239,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1594:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "1593:11:1"
},
"returnParameters": {
"id": 242,
"nodeType": "ParameterList",
"parameters": [],
"src": "1619:0:1"
},
"scope": 8141,
"src": "1575:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 265,
"nodeType": "Block",
"src": "1733:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733529",
"id": 260,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1777:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a",
"typeString": "literal_string \"log(bytes5)\""
},
"value": "log(bytes5)"
},
{
"id": 261,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 254,
"src": "1792:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes5",
"typeString": "bytes5"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a",
"typeString": "literal_string \"log(bytes5)\""
},
{
"typeIdentifier": "t_bytes5",
"typeString": "bytes5"
}
],
"expression": {
"id": 258,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1753:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 259,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1753:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 262,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1753:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 257,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1737:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 263,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1737:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 264,
"nodeType": "ExpressionStatement",
"src": "1737:59:1"
}
]
},
"id": 266,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes5",
"nameLocation": "1698:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 255,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 254,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1715:2:1",
"nodeType": "VariableDeclaration",
"scope": 266,
"src": "1708:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes5",
"typeString": "bytes5"
},
"typeName": {
"id": 253,
"name": "bytes5",
"nodeType": "ElementaryTypeName",
"src": "1708:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes5",
"typeString": "bytes5"
}
},
"visibility": "internal"
}
],
"src": "1707:11:1"
},
"returnParameters": {
"id": 256,
"nodeType": "ParameterList",
"parameters": [],
"src": "1733:0:1"
},
"scope": 8141,
"src": "1689:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 279,
"nodeType": "Block",
"src": "1847:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733629",
"id": 274,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1891:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330",
"typeString": "literal_string \"log(bytes6)\""
},
"value": "log(bytes6)"
},
{
"id": 275,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 268,
"src": "1906:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes6",
"typeString": "bytes6"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330",
"typeString": "literal_string \"log(bytes6)\""
},
{
"typeIdentifier": "t_bytes6",
"typeString": "bytes6"
}
],
"expression": {
"id": 272,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1867:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 273,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1867:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 276,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1867:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 271,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1851:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 277,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1851:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 278,
"nodeType": "ExpressionStatement",
"src": "1851:59:1"
}
]
},
"id": 280,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes6",
"nameLocation": "1812:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 269,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 268,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1829:2:1",
"nodeType": "VariableDeclaration",
"scope": 280,
"src": "1822:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes6",
"typeString": "bytes6"
},
"typeName": {
"id": 267,
"name": "bytes6",
"nodeType": "ElementaryTypeName",
"src": "1822:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes6",
"typeString": "bytes6"
}
},
"visibility": "internal"
}
],
"src": "1821:11:1"
},
"returnParameters": {
"id": 270,
"nodeType": "ParameterList",
"parameters": [],
"src": "1847:0:1"
},
"scope": 8141,
"src": "1803:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 293,
"nodeType": "Block",
"src": "1961:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733729",
"id": 288,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2005:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29",
"typeString": "literal_string \"log(bytes7)\""
},
"value": "log(bytes7)"
},
{
"id": 289,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 282,
"src": "2020:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes7",
"typeString": "bytes7"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29",
"typeString": "literal_string \"log(bytes7)\""
},
{
"typeIdentifier": "t_bytes7",
"typeString": "bytes7"
}
],
"expression": {
"id": 286,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "1981:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 287,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "1981:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 290,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1981:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 285,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "1965:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 291,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1965:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 292,
"nodeType": "ExpressionStatement",
"src": "1965:59:1"
}
]
},
"id": 294,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes7",
"nameLocation": "1926:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 283,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 282,
"mutability": "mutable",
"name": "p0",
"nameLocation": "1943:2:1",
"nodeType": "VariableDeclaration",
"scope": 294,
"src": "1936:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes7",
"typeString": "bytes7"
},
"typeName": {
"id": 281,
"name": "bytes7",
"nodeType": "ElementaryTypeName",
"src": "1936:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes7",
"typeString": "bytes7"
}
},
"visibility": "internal"
}
],
"src": "1935:11:1"
},
"returnParameters": {
"id": 284,
"nodeType": "ParameterList",
"parameters": [],
"src": "1961:0:1"
},
"scope": 8141,
"src": "1917:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 307,
"nodeType": "Block",
"src": "2075:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733829",
"id": 302,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2119:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3",
"typeString": "literal_string \"log(bytes8)\""
},
"value": "log(bytes8)"
},
{
"id": 303,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 296,
"src": "2134:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3",
"typeString": "literal_string \"log(bytes8)\""
},
{
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
}
],
"expression": {
"id": 300,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2095:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 301,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2095:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 304,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2095:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 299,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2079:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 305,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2079:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 306,
"nodeType": "ExpressionStatement",
"src": "2079:59:1"
}
]
},
"id": 308,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes8",
"nameLocation": "2040:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 297,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 296,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2057:2:1",
"nodeType": "VariableDeclaration",
"scope": 308,
"src": "2050:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
},
"typeName": {
"id": 295,
"name": "bytes8",
"nodeType": "ElementaryTypeName",
"src": "2050:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
}
},
"visibility": "internal"
}
],
"src": "2049:11:1"
},
"returnParameters": {
"id": 298,
"nodeType": "ParameterList",
"parameters": [],
"src": "2075:0:1"
},
"scope": 8141,
"src": "2031:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 321,
"nodeType": "Block",
"src": "2189:67:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f672862797465733929",
"id": 316,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2233:13:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667",
"typeString": "literal_string \"log(bytes9)\""
},
"value": "log(bytes9)"
},
{
"id": 317,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 310,
"src": "2248:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes9",
"typeString": "bytes9"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667",
"typeString": "literal_string \"log(bytes9)\""
},
{
"typeIdentifier": "t_bytes9",
"typeString": "bytes9"
}
],
"expression": {
"id": 314,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2209:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 315,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2209:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 318,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2209:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 313,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2193:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 319,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2193:59:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 320,
"nodeType": "ExpressionStatement",
"src": "2193:59:1"
}
]
},
"id": 322,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes9",
"nameLocation": "2154:9:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 311,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 310,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2171:2:1",
"nodeType": "VariableDeclaration",
"scope": 322,
"src": "2164:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes9",
"typeString": "bytes9"
},
"typeName": {
"id": 309,
"name": "bytes9",
"nodeType": "ElementaryTypeName",
"src": "2164:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes9",
"typeString": "bytes9"
}
},
"visibility": "internal"
}
],
"src": "2163:11:1"
},
"returnParameters": {
"id": 312,
"nodeType": "ParameterList",
"parameters": [],
"src": "2189:0:1"
},
"scope": 8141,
"src": "2145:111:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 335,
"nodeType": "Block",
"src": "2305:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313029",
"id": 330,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2349:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66",
"typeString": "literal_string \"log(bytes10)\""
},
"value": "log(bytes10)"
},
{
"id": 331,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 324,
"src": "2365:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes10",
"typeString": "bytes10"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66",
"typeString": "literal_string \"log(bytes10)\""
},
{
"typeIdentifier": "t_bytes10",
"typeString": "bytes10"
}
],
"expression": {
"id": 328,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2325:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 329,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2325:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 332,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2325:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 327,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2309:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 333,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2309:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 334,
"nodeType": "ExpressionStatement",
"src": "2309:60:1"
}
]
},
"id": 336,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes10",
"nameLocation": "2268:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 325,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 324,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2287:2:1",
"nodeType": "VariableDeclaration",
"scope": 336,
"src": "2279:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes10",
"typeString": "bytes10"
},
"typeName": {
"id": 323,
"name": "bytes10",
"nodeType": "ElementaryTypeName",
"src": "2279:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes10",
"typeString": "bytes10"
}
},
"visibility": "internal"
}
],
"src": "2278:12:1"
},
"returnParameters": {
"id": 326,
"nodeType": "ParameterList",
"parameters": [],
"src": "2305:0:1"
},
"scope": 8141,
"src": "2259:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 349,
"nodeType": "Block",
"src": "2422:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313129",
"id": 344,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2466:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9",
"typeString": "literal_string \"log(bytes11)\""
},
"value": "log(bytes11)"
},
{
"id": 345,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 338,
"src": "2482:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes11",
"typeString": "bytes11"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9",
"typeString": "literal_string \"log(bytes11)\""
},
{
"typeIdentifier": "t_bytes11",
"typeString": "bytes11"
}
],
"expression": {
"id": 342,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2442:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 343,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2442:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 346,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2442:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 341,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2426:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 347,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2426:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 348,
"nodeType": "ExpressionStatement",
"src": "2426:60:1"
}
]
},
"id": 350,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes11",
"nameLocation": "2385:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 339,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 338,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2404:2:1",
"nodeType": "VariableDeclaration",
"scope": 350,
"src": "2396:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes11",
"typeString": "bytes11"
},
"typeName": {
"id": 337,
"name": "bytes11",
"nodeType": "ElementaryTypeName",
"src": "2396:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes11",
"typeString": "bytes11"
}
},
"visibility": "internal"
}
],
"src": "2395:12:1"
},
"returnParameters": {
"id": 340,
"nodeType": "ParameterList",
"parameters": [],
"src": "2422:0:1"
},
"scope": 8141,
"src": "2376:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 363,
"nodeType": "Block",
"src": "2539:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313229",
"id": 358,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2583:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2",
"typeString": "literal_string \"log(bytes12)\""
},
"value": "log(bytes12)"
},
{
"id": 359,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 352,
"src": "2599:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes12",
"typeString": "bytes12"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2",
"typeString": "literal_string \"log(bytes12)\""
},
{
"typeIdentifier": "t_bytes12",
"typeString": "bytes12"
}
],
"expression": {
"id": 356,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2559:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 357,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2559:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2559:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 355,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2543:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 361,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2543:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 362,
"nodeType": "ExpressionStatement",
"src": "2543:60:1"
}
]
},
"id": 364,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes12",
"nameLocation": "2502:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 353,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 352,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2521:2:1",
"nodeType": "VariableDeclaration",
"scope": 364,
"src": "2513:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes12",
"typeString": "bytes12"
},
"typeName": {
"id": 351,
"name": "bytes12",
"nodeType": "ElementaryTypeName",
"src": "2513:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes12",
"typeString": "bytes12"
}
},
"visibility": "internal"
}
],
"src": "2512:12:1"
},
"returnParameters": {
"id": 354,
"nodeType": "ParameterList",
"parameters": [],
"src": "2539:0:1"
},
"scope": 8141,
"src": "2493:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 377,
"nodeType": "Block",
"src": "2656:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313329",
"id": 372,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2700:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec",
"typeString": "literal_string \"log(bytes13)\""
},
"value": "log(bytes13)"
},
{
"id": 373,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 366,
"src": "2716:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes13",
"typeString": "bytes13"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec",
"typeString": "literal_string \"log(bytes13)\""
},
{
"typeIdentifier": "t_bytes13",
"typeString": "bytes13"
}
],
"expression": {
"id": 370,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2676:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 371,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2676:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 374,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2676:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 369,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2660:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 375,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2660:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 376,
"nodeType": "ExpressionStatement",
"src": "2660:60:1"
}
]
},
"id": 378,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes13",
"nameLocation": "2619:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 367,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 366,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2638:2:1",
"nodeType": "VariableDeclaration",
"scope": 378,
"src": "2630:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes13",
"typeString": "bytes13"
},
"typeName": {
"id": 365,
"name": "bytes13",
"nodeType": "ElementaryTypeName",
"src": "2630:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes13",
"typeString": "bytes13"
}
},
"visibility": "internal"
}
],
"src": "2629:12:1"
},
"returnParameters": {
"id": 368,
"nodeType": "ParameterList",
"parameters": [],
"src": "2656:0:1"
},
"scope": 8141,
"src": "2610:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 391,
"nodeType": "Block",
"src": "2773:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313429",
"id": 386,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2817:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278",
"typeString": "literal_string \"log(bytes14)\""
},
"value": "log(bytes14)"
},
{
"id": 387,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 380,
"src": "2833:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes14",
"typeString": "bytes14"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278",
"typeString": "literal_string \"log(bytes14)\""
},
{
"typeIdentifier": "t_bytes14",
"typeString": "bytes14"
}
],
"expression": {
"id": 384,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2793:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 385,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2793:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 388,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2793:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 383,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2777:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 389,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2777:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 390,
"nodeType": "ExpressionStatement",
"src": "2777:60:1"
}
]
},
"id": 392,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes14",
"nameLocation": "2736:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 381,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 380,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2755:2:1",
"nodeType": "VariableDeclaration",
"scope": 392,
"src": "2747:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes14",
"typeString": "bytes14"
},
"typeName": {
"id": 379,
"name": "bytes14",
"nodeType": "ElementaryTypeName",
"src": "2747:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes14",
"typeString": "bytes14"
}
},
"visibility": "internal"
}
],
"src": "2746:12:1"
},
"returnParameters": {
"id": 382,
"nodeType": "ParameterList",
"parameters": [],
"src": "2773:0:1"
},
"scope": 8141,
"src": "2727:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 405,
"nodeType": "Block",
"src": "2890:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313529",
"id": 400,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2934:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606",
"typeString": "literal_string \"log(bytes15)\""
},
"value": "log(bytes15)"
},
{
"id": 401,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 394,
"src": "2950:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes15",
"typeString": "bytes15"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606",
"typeString": "literal_string \"log(bytes15)\""
},
{
"typeIdentifier": "t_bytes15",
"typeString": "bytes15"
}
],
"expression": {
"id": 398,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "2910:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 399,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "2910:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 402,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2910:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 397,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "2894:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 403,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2894:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 404,
"nodeType": "ExpressionStatement",
"src": "2894:60:1"
}
]
},
"id": 406,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes15",
"nameLocation": "2853:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 395,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 394,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2872:2:1",
"nodeType": "VariableDeclaration",
"scope": 406,
"src": "2864:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes15",
"typeString": "bytes15"
},
"typeName": {
"id": 393,
"name": "bytes15",
"nodeType": "ElementaryTypeName",
"src": "2864:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes15",
"typeString": "bytes15"
}
},
"visibility": "internal"
}
],
"src": "2863:12:1"
},
"returnParameters": {
"id": 396,
"nodeType": "ParameterList",
"parameters": [],
"src": "2890:0:1"
},
"scope": 8141,
"src": "2844:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 419,
"nodeType": "Block",
"src": "3007:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313629",
"id": 414,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3051:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3",
"typeString": "literal_string \"log(bytes16)\""
},
"value": "log(bytes16)"
},
{
"id": 415,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 408,
"src": "3067:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes16",
"typeString": "bytes16"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3",
"typeString": "literal_string \"log(bytes16)\""
},
{
"typeIdentifier": "t_bytes16",
"typeString": "bytes16"
}
],
"expression": {
"id": 412,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "3027:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 413,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "3027:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 416,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3027:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 411,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "3011:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 417,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3011:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 418,
"nodeType": "ExpressionStatement",
"src": "3011:60:1"
}
]
},
"id": 420,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes16",
"nameLocation": "2970:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 409,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 408,
"mutability": "mutable",
"name": "p0",
"nameLocation": "2989:2:1",
"nodeType": "VariableDeclaration",
"scope": 420,
"src": "2981:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes16",
"typeString": "bytes16"
},
"typeName": {
"id": 407,
"name": "bytes16",
"nodeType": "ElementaryTypeName",
"src": "2981:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes16",
"typeString": "bytes16"
}
},
"visibility": "internal"
}
],
"src": "2980:12:1"
},
"returnParameters": {
"id": 410,
"nodeType": "ParameterList",
"parameters": [],
"src": "3007:0:1"
},
"scope": 8141,
"src": "2961:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 433,
"nodeType": "Block",
"src": "3124:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313729",
"id": 428,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3168:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3",
"typeString": "literal_string \"log(bytes17)\""
},
"value": "log(bytes17)"
},
{
"id": 429,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 422,
"src": "3184:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes17",
"typeString": "bytes17"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3",
"typeString": "literal_string \"log(bytes17)\""
},
{
"typeIdentifier": "t_bytes17",
"typeString": "bytes17"
}
],
"expression": {
"id": 426,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "3144:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 427,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "3144:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3144:43:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 425,
"name": "_sendLogPayload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 101,
"src": "3128:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory) view"
}
},
"id": 431,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3128:60:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 432,
"nodeType": "ExpressionStatement",
"src": "3128:60:1"
}
]
},
"id": 434,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "logBytes17",
"nameLocation": "3087:10:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 423,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 422,
"mutability": "mutable",
"name": "p0",
"nameLocation": "3106:2:1",
"nodeType": "VariableDeclaration",
"scope": 434,
"src": "3098:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes17",
"typeString": "bytes17"
},
"typeName": {
"id": 421,
"name": "bytes17",
"nodeType": "ElementaryTypeName",
"src": "3098:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes17",
"typeString": "bytes17"
}
},
"visibility": "internal"
}
],
"src": "3097:12:1"
},
"returnParameters": {
"id": 424,
"nodeType": "ParameterList",
"parameters": [],
"src": "3124:0:1"
},
"scope": 8141,
"src": "3078:114:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 447,
"nodeType": "Block",
"src": "3241:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "6c6f67286279746573313829",
"id": 442,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3285:14:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116",
"typeString": "literal_string \"log(bytes18)\""
},
"value": "log(bytes18)"
},
{
"id": 443,
"name": "p0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 436,
"src": "3301:2:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes18",
"typeString": "bytes18"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116",
"typeString": "literal_string \"log(bytes18)\""
},
{
"typeIdentifier": "t_bytes18",
"typeString": "bytes18"
}
],
"expression": {
"id": 440,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "3261:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 441,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "3261:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 444,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3261:43:1",
View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

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