Skip to content

Instantly share code, notes, and snippets.

@AugustDev
Created December 22, 2022 05:31
Show Gist options
  • Save AugustDev/e739ae12dc6cf9aa39fba8a5ad3fbc32 to your computer and use it in GitHub Desktop.
Save AugustDev/e739ae12dc6cf9aa39fba8a5ad3fbc32 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.13+commit.abaa5c0e.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
* the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
*
* _Available since v4.8._
*/
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata,
string memory errorMessage
) internal view returns (bytes memory) {
if (success) {
if (returndata.length == 0) {
// only check isContract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
require(isContract(target), "Address: call to non-contract");
}
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
/**
* @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason or using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function _revert(bytes memory returndata, string memory errorMessage) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {OperatorFilterer} from "./OperatorFilterer.sol";
/**
* @title DefaultOperatorFilterer
* @notice Inherits from OperatorFilterer and automatically subscribes to the default OpenSea subscription.
*/
abstract contract DefaultOperatorFilterer is OperatorFilterer {
address constant DEFAULT_SUBSCRIPTION = address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6);
constructor() OperatorFilterer(DEFAULT_SUBSCRIPTION, true) {}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/ERC1155.sol)
pragma solidity 0.8.13;
import "./IERC1155.sol";
import "./IERC1155Receiver.sol";
import "./IERC1155MetadataURI.sol";
import "./Address.sol";
import "./Context.sol";
import "./ERC165.sol";
import "./Strings.sol";
/**
* @dev Implementation of the basic standard multi-token.
* See https://eips.ethereum.org/EIPS/eip-1155
* Originally based on code by Enjin: https://github.com/enjin/erc-1155
*
* _Available since v3.1._
*/
contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
using Address for address;
// Mapping from token ID to account balances
mapping(uint256 => mapping(address => uint256)) public balances;
// Mapping from token ID to the IPFS cid
mapping(uint256 => string) public cids;
// Mapping from account to operator approvals
mapping(address => mapping(address => bool)) private _operatorApprovals;
// Used as the URI for all token types by relying on ID substitution, e.g.
string public baseUri;
/**
* @dev See {_setURI}.
*/
constructor(string memory uri_) {
_setURI(uri_);
}
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override(ERC165, IERC165)
returns (bool)
{
return
interfaceId == type(IERC1155).interfaceId ||
interfaceId == type(IERC1155MetadataURI).interfaceId ||
super.supportsInterface(interfaceId);
}
/**
* @dev See {IERC1155MetadataURI-uri}.
*
* This implementation returns the same URI for *all* token types. It relies
* on the token type ID substitution mechanism
* https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
*
* Clients calling this function must replace the `\{id\}` substring with the
* actual token type ID.
*/
function uri(uint256 id)
public
view
virtual
override
returns (string memory)
{
return string(abi.encodePacked(baseUri, cids[id]));
}
/**
* @dev See {IERC1155-balanceOf}.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function balanceOf(address account, uint256 id)
public
view
virtual
override
returns (uint256)
{
require(
account != address(0),
"ERC1155: balance query for the zero address"
);
return balances[id][account];
}
/**
* @dev See {IERC1155-balanceOfBatch}.
*
* Requirements:
*
* - `accounts` and `ids` must have the same length.
*/
function balanceOfBatch(address[] memory accounts, uint256[] memory ids)
public
view
virtual
override
returns (uint256[] memory)
{
require(
accounts.length == ids.length,
"ERC1155: accounts and ids length mismatch"
);
uint256[] memory batchBalances = new uint256[](accounts.length);
for (uint256 i = 0; i < accounts.length; ++i) {
batchBalances[i] = balanceOf(accounts[i], ids[i]);
}
return batchBalances;
}
/**
* @dev See {IERC1155-setApprovalForAll}.
*/
function setApprovalForAll(address operator, bool approved)
public
virtual
override
{
_setApprovalForAll(_msgSender(), operator, approved);
}
/**
* @dev See {IERC1155-isApprovedForAll}.
*/
function isApprovedForAll(address account, address operator)
public
view
virtual
override
returns (bool)
{
return _operatorApprovals[account][operator];
}
/**
* @dev See {IERC1155-safeTransferFrom}.
*/
function safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) public virtual override {
require(
from == _msgSender() || isApprovedForAll(from, _msgSender()),
"ERC1155: caller is not owner nor approved"
);
_safeTransferFrom(from, to, id, amount, data);
}
/**
* @dev See {IERC1155-safeBatchTransferFrom}.
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) public virtual override {
require(
from == _msgSender() || isApprovedForAll(from, _msgSender()),
"ERC1155: transfer caller is not owner nor approved"
);
_safeBatchTransferFrom(from, to, ids, amounts, data);
}
/**
* @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - `from` must have a balance of tokens of type `id` of at least `amount`.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function _safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: transfer to the zero address");
address operator = _msgSender();
uint256[] memory ids = _asSingletonArray(id);
uint256[] memory amounts = _asSingletonArray(amount);
_beforeTokenTransfer(operator, from, to, ids, amounts, data);
uint256 fromBalance = balances[id][from];
require(
fromBalance >= amount,
"ERC1155: insufficient balance for transfer"
);
unchecked {
balances[id][from] = fromBalance - amount;
}
balances[id][to] += amount;
emit TransferSingle(operator, from, to, id, amount);
_afterTokenTransfer(operator, from, to, ids, amounts, data);
_doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
}
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.
*
* Emits a {TransferBatch} event.
*
* Requirements:
*
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function _safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {
require(
ids.length == amounts.length,
"ERC1155: ids and amounts length mismatch"
);
require(to != address(0), "ERC1155: transfer to the zero address");
address operator = _msgSender();
_beforeTokenTransfer(operator, from, to, ids, amounts, data);
for (uint256 i = 0; i < ids.length; ++i) {
uint256 id = ids[i];
uint256 amount = amounts[i];
uint256 fromBalance = balances[id][from];
require(
fromBalance >= amount,
"ERC1155: insufficient balance for transfer"
);
unchecked {
balances[id][from] = fromBalance - amount;
}
balances[id][to] += amount;
}
emit TransferBatch(operator, from, to, ids, amounts);
_afterTokenTransfer(operator, from, to, ids, amounts, data);
_doSafeBatchTransferAcceptanceCheck(
operator,
from,
to,
ids,
amounts,
data
);
}
/**
* @dev Sets a new URI for all token types, by relying on the token type ID
* substitution mechanism
* https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
*
* By this mechanism, any occurrence of the `\{id\}` substring in either the
* URI or any of the amounts in the JSON file at said URI will be replaced by
* clients with the token type ID.
*
* For example, the `https://token-cdn-domain/\{id\}.json` URI would be
* interpreted by clients as
* `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
* for token type ID 0x4cce0.
*
* See {uri}.
*
* Because these URIs cannot be meaningfully represented by the {URI} event,
* this function emits no events.
*/
function _setURI(string memory newuri) internal virtual {
baseUri = newuri;
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function _mint(
address to,
uint256 id,
uint256 amount,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: mint to the zero address");
address operator = _msgSender();
uint256[] memory ids = _asSingletonArray(id);
uint256[] memory amounts = _asSingletonArray(amount);
_beforeTokenTransfer(operator, address(0), to, ids, amounts, data);
balances[id][to] += amount;
emit TransferSingle(operator, address(0), to, id, amount);
_afterTokenTransfer(operator, address(0), to, ids, amounts, data);
_doSafeTransferAcceptanceCheck(
operator,
address(0),
to,
id,
amount,
data
);
}
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function _mintBatch(
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: mint to the zero address");
require(
ids.length == amounts.length,
"ERC1155: ids and amounts length mismatch"
);
address operator = _msgSender();
_beforeTokenTransfer(operator, address(0), to, ids, amounts, data);
for (uint256 i = 0; i < ids.length; i++) {
balances[ids[i]][to] += amounts[i];
emit TransferSingle(operator, address(0), to, ids[i], amounts[i]);
}
_afterTokenTransfer(operator, address(0), to, ids, amounts, data);
_doSafeBatchTransferAcceptanceCheck(
operator,
address(0),
to,
ids,
amounts,
data
);
}
/**
* @dev Approve `operator` to operate on all of `owner` tokens
*
* Emits a {ApprovalForAll} event.
*/
function _setApprovalForAll(
address owner,
address operator,
bool approved
) internal virtual {
require(owner != operator, "ERC1155: setting approval status for self");
_operatorApprovals[owner][operator] = approved;
emit ApprovalForAll(owner, operator, approved);
}
/**
* @dev Hook that is called before any token transfer. This includes minting
* and burning, as well as batched variants.
*
* The same hook is called on both single and batched variants. For single
* transfers, the length of the `id` and `amount` arrays will be 1.
*
* Calling conditions (for each `id` and `amount` pair):
*
* - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* of token type `id` will be transferred to `to`.
* - When `from` is zero, `amount` tokens of token type `id` will be minted
* for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
* will be burned.
* - `from` and `to` are never both zero.
* - `ids` and `amounts` have the same, non-zero length.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {}
/**
* @dev Hook that is called after any token transfer. This includes minting
* and burning, as well as batched variants.
*
* The same hook is called on both single and batched variants. For single
* transfers, the length of the `id` and `amount` arrays will be 1.
*
* Calling conditions (for each `id` and `amount` pair):
*
* - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* of token type `id` will be transferred to `to`.
* - When `from` is zero, `amount` tokens of token type `id` will be minted
* for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
* will be burned.
* - `from` and `to` are never both zero.
* - `ids` and `amounts` have the same, non-zero length.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {}
function _doSafeTransferAcceptanceCheck(
address operator,
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) public {
if (to.isContract()) {
try
IERC1155Receiver(to).onERC1155Received(
operator,
from,
id,
amount,
data
)
returns (bytes4 response) {
if (response != IERC1155Receiver.onERC1155Received.selector) {
revert("ERC1155: ERC1155Receiver rejected tokens");
}
} catch Error(string memory reason) {
revert(reason);
} catch {
revert("ERC1155: transfer to non ERC1155Receiver implementer");
}
}
}
function _doSafeBatchTransferAcceptanceCheck(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) private {
if (to.isContract()) {
try
IERC1155Receiver(to).onERC1155BatchReceived(
operator,
from,
ids,
amounts,
data
)
returns (bytes4 response) {
if (
response != IERC1155Receiver.onERC1155BatchReceived.selector
) {
revert("ERC1155: ERC1155Receiver rejected tokens");
}
} catch Error(string memory reason) {
revert(reason);
} catch {
revert("ERC1155: transfer to non ERC1155Receiver implementer");
}
}
}
function _asSingletonArray(uint256 element)
private
pure
returns (uint256[] memory)
{
uint256[] memory array = new uint256[](1);
array[0] = element;
return array;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev Implementation of the {IERC165} interface.
*
* Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
* for the additional interface id that will be supported. For example:
*
* ```solidity
* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
* }
* ```
*
* Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
*/
abstract contract ERC165 is IERC165 {
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./ERC165.sol";
import "./IERC2981Royalties.sol";
/// @dev This is a contract used to add ERC2981 support to ERC721 and 1155
abstract contract ERC2981Base is ERC165, IERC2981Royalties {
struct RoyaltyInfo {
address recipient;
uint24 amount;
}
/// @inheritdoc ERC165
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override
returns (bool)
{
return
interfaceId == type(IERC2981Royalties).interfaceId ||
super.supportsInterface(interfaceId);
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./ERC165.sol";
import "./ERC2981Base.sol";
/// @dev This is a contract used to add ERC2981 support to ERC721 and 1155
abstract contract ERC2981PerTokenRoyalties is ERC2981Base {
mapping(uint256 => RoyaltyInfo) internal _royalties;
/// @dev Sets token royalties
/// @param tokenId the token id fir which we register the royalties
/// @param recipient recipient of the royalties
/// @param value percentage (using 2 decimals - 10000 = 100, 0 = 0)
function _setTokenRoyalty(
uint256 tokenId,
address recipient,
uint256 value
) internal {
require(value <= 10000, "ERC2981Royalties: Too high");
_royalties[tokenId] = RoyaltyInfo(recipient, uint24(value));
}
/// @inheritdoc IERC2981Royalties
function royaltyInfo(uint256 tokenId, uint256 value)
external
view
override
returns (address receiver, uint256 royaltyAmount)
{
RoyaltyInfo memory royalties = _royalties[tokenId];
receiver = royalties.recipient;
royaltyAmount = (value * royalties.amount) / 10000;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC1155/IERC1155.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev Required interface of an ERC1155 compliant contract, as defined in the
* https://eips.ethereum.org/EIPS/eip-1155[EIP].
*
* _Available since v3.1._
*/
interface IERC1155 is IERC165 {
/**
* @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
*/
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
/**
* @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
* transfers.
*/
event TransferBatch(
address indexed operator,
address indexed from,
address indexed to,
uint256[] ids,
uint256[] values
);
/**
* @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
* `approved`.
*/
event ApprovalForAll(address indexed account, address indexed operator, bool approved);
/**
* @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
*
* If an {URI} event was emitted for `id`, the standard
* https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
* returned by {IERC1155MetadataURI-uri}.
*/
event URI(string value, uint256 indexed id);
/**
* @dev Returns the amount of tokens of token type `id` owned by `account`.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function balanceOf(address account, uint256 id) external view returns (uint256);
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
*
* Requirements:
*
* - `accounts` and `ids` must have the same length.
*/
function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
external
view
returns (uint256[] memory);
/**
* @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
*
* Emits an {ApprovalForAll} event.
*
* Requirements:
*
* - `operator` cannot be the caller.
*/
function setApprovalForAll(address operator, bool approved) external;
/**
* @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
*
* See {setApprovalForAll}.
*/
function isApprovedForAll(address account, address operator) external view returns (bool);
/**
* @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.
* - `from` must have a balance of tokens of type `id` of at least `amount`.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes calldata data
) external;
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
*
* Emits a {TransferBatch} event.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] calldata ids,
uint256[] calldata amounts,
bytes calldata data
) external;
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)
pragma solidity ^0.8.0;
import "./IERC1155.sol";
/**
* @dev Interface of the optional ERC1155MetadataExtension interface, as defined
* in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
*
* _Available since v3.1._
*/
interface IERC1155MetadataURI is IERC1155 {
/**
* @dev Returns the URI for token type `id`.
*
* If the `\{id\}` substring is present in the URI, it must be replaced by
* clients with the actual token type ID.
*/
function uri(uint256 id) external view returns (string memory);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev _Available since v3.1._
*/
interface IERC1155Receiver is IERC165 {
/**
* @dev Handles the receipt of a single ERC1155 token type. This function is
* called at the end of a `safeTransferFrom` after the balance has been updated.
*
* NOTE: To accept the transfer, this must return
* `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
* (i.e. 0xf23a6e61, or its own function selector).
*
* @param operator The address which initiated the transfer (i.e. msg.sender)
* @param from The address which previously owned the token
* @param id The ID of the token being transferred
* @param value The amount of tokens being transferred
* @param data Additional data with no specified format
* @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
*/
function onERC1155Received(
address operator,
address from,
uint256 id,
uint256 value,
bytes calldata data
) external returns (bytes4);
/**
* @dev Handles the receipt of a multiple ERC1155 token types. This function
* is called at the end of a `safeBatchTransferFrom` after the balances have
* been updated.
*
* NOTE: To accept the transfer(s), this must return
* `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
* (i.e. 0xbc197c81, or its own function selector).
*
* @param operator The address which initiated the batch transfer (i.e. msg.sender)
* @param from The address which previously owned the token
* @param ids An array containing ids of each token being transferred (order and length must match values array)
* @param values An array containing amounts of each token being transferred (order and length must match ids array)
* @param data Additional data with no specified format
* @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
*/
function onERC1155BatchReceived(
address operator,
address from,
uint256[] calldata ids,
uint256[] calldata values,
bytes calldata data
) external returns (bytes4);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
/// @title IERC2981Royalties
/// @dev Interface for the ERC2981 - Token Royalty standard
interface IERC2981Royalties {
/// @notice Called with the sale price to determine how much royalty
// is owed and to whom.
/// @param _tokenId - the NFT asset queried for royalty information
/// @param _value - the sale price of the NFT asset specified by _tokenId
/// @return _receiver - address of who should be sent the royalty payment
/// @return _royaltyAmount - the royalty payment amount for value sale price
function royaltyInfo(uint256 _tokenId, uint256 _value)
external
view
returns (address _receiver, uint256 _royaltyAmount);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
interface IOperatorFilterRegistry {
function isOperatorAllowed(address registrant, address operator) external view returns (bool);
function register(address registrant) external;
function registerAndSubscribe(address registrant, address subscription) external;
function registerAndCopyEntries(address registrant, address registrantToCopy) external;
function unregister(address addr) external;
function updateOperator(address registrant, address operator, bool filtered) external;
function updateOperators(address registrant, address[] calldata operators, bool filtered) external;
function updateCodeHash(address registrant, bytes32 codehash, bool filtered) external;
function updateCodeHashes(address registrant, bytes32[] calldata codeHashes, bool filtered) external;
function subscribe(address registrant, address registrantToSubscribe) external;
function unsubscribe(address registrant, bool copyExistingEntries) external;
function subscriptionOf(address addr) external returns (address registrant);
function subscribers(address registrant) external returns (address[] memory);
function subscriberAt(address registrant, uint256 index) external returns (address);
function copyEntriesOf(address registrant, address registrantToCopy) external;
function isOperatorFiltered(address registrant, address operator) external returns (bool);
function isCodeHashOfFiltered(address registrant, address operatorWithCode) external returns (bool);
function isCodeHashFiltered(address registrant, bytes32 codeHash) external returns (bool);
function filteredOperators(address addr) external returns (address[] memory);
function filteredCodeHashes(address addr) external returns (bytes32[] memory);
function filteredOperatorAt(address registrant, uint256 index) external returns (address);
function filteredCodeHashAt(address registrant, uint256 index) external returns (bytes32);
function isRegistered(address addr) external returns (bool);
function codeHashOf(address addr) external returns (bytes32);
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./Ownable.sol";
import "./ERC1155.sol";
import "./ERC2981PerTokenRoyalties.sol";
import {DefaultOperatorFilterer} from "./DefaultOperatorFilterer.sol";
/// @custom:security-contact contact@verse.works
contract LondonToken is
ERC1155,
Ownable,
ERC2981PerTokenRoyalties,
DefaultOperatorFilterer
{
constructor(
string memory uri_,
address minter_,
address gatewayManager_
) ERC1155(uri_) {
mintingManager = minter_;
gatewayManager = gatewayManager_;
}
string public constant name = "Verse Works v0.3.0";
uint256 public totalSupply;
address public mintingManager;
address public gatewayManager;
modifier onlyMinter() {
require(msg.sender == mintingManager);
_;
}
modifier onlyGatewayManager() {
require(msg.sender == gatewayManager);
_;
}
/**
* @dev OS Operator filtering
*/
function setApprovalForAll(address operator, bool approved)
public
override
onlyAllowedOperatorApproval(operator)
{
super.setApprovalForAll(operator, approved);
}
/**
* @dev OS Operator filtering
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
uint256 amount,
bytes memory data
) public override onlyAllowedOperator(from) {
super.safeTransferFrom(from, to, tokenId, amount, data);
}
/**
* @dev OS Operator filtering
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) public virtual override onlyAllowedOperator(from) {
super.safeBatchTransferFrom(from, to, ids, amounts, data);
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
* In additionit sets the royalties for `royaltyRecipient` of the value `royaltyValue`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function mint(
address account,
uint256 id,
uint256 amount,
string memory cid,
address royaltyRecipient,
uint256 royaltyValue
) public onlyMinter {
_mint(account, id, amount, "");
if (royaltyValue > 0) {
_setTokenRoyalty(id, royaltyRecipient, royaltyValue);
}
cids[id] = cid;
totalSupply += amount;
}
/**
* @dev Batch version of `mint`.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function mintBatch(
address to,
uint256[] memory ids,
uint256[] memory amounts,
string[] memory tokenCids,
address[] memory royaltyRecipients,
uint256[] memory royaltyValues
) public onlyMinter {
require(
ids.length == royaltyRecipients.length &&
ids.length == royaltyValues.length,
"ERC1155: Arrays length mismatch"
);
_mintBatch(to, ids, amounts, "");
for (uint256 i; i < ids.length; i++) {
if (royaltyValues[i] > 0) {
_setTokenRoyalty(
ids[i],
royaltyRecipients[i],
royaltyValues[i]
);
}
// update IPFS CID
cids[ids[i]] = tokenCids[i];
}
uint256 count;
for (uint256 i = 0; i < ids.length; i++) {
for (uint256 j = 0; j < amounts.length; j++) {
count += ids[i] * amounts[j];
}
}
totalSupply += count;
}
/**
* @dev Checks for supported interface.
*
*/
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override(ERC1155, ERC2981Base)
returns (bool)
{
return super.supportsInterface(interfaceId);
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
* In additionit sets the royalties for `royaltyRecipient` of the value `royaltyValue`.
* Method emits two transfer events.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
*/
function mintWithCreator(
address creator,
address to,
uint256 tokenId,
string memory cid,
address royaltyRecipient,
uint256 royaltyValue
) public onlyMinter {
require(to != address(0), "mint to the zero address");
balances[tokenId][to] += 1;
totalSupply += 1;
cids[tokenId] = cid;
if (royaltyValue > 0) {
_setTokenRoyalty(tokenId, royaltyRecipient, royaltyValue);
}
address operator = _msgSender();
emit TransferSingle(operator, address(0), creator, tokenId, 1);
emit TransferSingle(operator, creator, to, tokenId, 1);
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
* In additionit sets the royalties for `royaltyRecipient` of the value `royaltyValue`.
* Method emits two transfer events.
*
* Emits a {TransferSingle} events for intermediate artist.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function batchMintWithCreator(
address to,
address[] memory creators,
uint256[] memory tokenIds,
string[] memory tokenCids,
address[] memory royaltyRecipients,
uint256[] memory royaltyValues
) public onlyMinter {
require(
tokenIds.length == royaltyRecipients.length &&
tokenIds.length == royaltyValues.length,
"ERC1155: Arrays length mismatch"
);
address operator = _msgSender();
for (uint256 i = 0; i < tokenIds.length; i++) {
balances[tokenIds[i]][to] += 1;
// check if recipient can accept NFT
_doSafeTransferAcceptanceCheck(
operator,
address(0),
to,
tokenIds[i],
1,
""
);
// update royalties
if (royaltyValues[i] > 0) {
_setTokenRoyalty(
tokenIds[i],
royaltyRecipients[i],
royaltyValues[i]
);
}
// update IPFS CID
cids[tokenIds[i]] = tokenCids[i];
// emit events based on creator provided
if (creators[i] == address(0)) {
emit TransferSingle(operator, address(0), to, tokenIds[i], 1);
} else {
emit TransferSingle(
operator,
address(0),
creators[i],
tokenIds[i],
1
);
emit TransferSingle(operator, creators[i], to, tokenIds[i], 1);
}
}
// update total supply
totalSupply += tokenIds.length;
}
/**
* @dev Sets base URI for metadata.
*
*/
function setURI(string memory newuri) public onlyGatewayManager {
_setURI(newuri);
}
/**
* @dev Sets new minter for the contract.
*
*/
function setMintingManager(address minter_) public onlyOwner {
mintingManager = minter_;
}
/**
* @dev Sets new gateway manager for the contract.
*
*/
function setGatewayManager(address gatewayManager_) public onlyOwner {
gatewayManager = gatewayManager_;
}
/**
* @dev Sets royalties for `tokenId` and `tokenRecipient` with royalty value `royaltyValue`.
*
*/
function setRoyalties(
uint256 tokenId,
address royaltyRecipient,
uint256 royaltyValue
) public onlyOwner {
_setTokenRoyalty(tokenId, royaltyRecipient, royaltyValue);
}
/**
* @dev Sets IPFS cid metadata hash for token id `tokenId`.
*
*/
function setCID(uint256 tokenId, string memory cid)
public
onlyGatewayManager
{
cids[tokenId] = cid;
}
/**
* @dev Sets IPFS cid metadata hash for token id `tokenId`.
*
*/
function setCIDs(uint256[] memory tokenIds, string[] memory cids_)
public
onlyGatewayManager
{
require(
tokenIds.length == cids_.length,
"ERC1155: Arrays length mismatch"
);
for (uint256 i = 0; i < tokenIds.length; i++) {
cids[tokenIds[i]] = cids_[i];
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)
pragma solidity ^0.8.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
enum Rounding {
Down, // Toward negative infinity
Up, // Toward infinity
Zero // Toward zero
}
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a > b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : b;
}
/**
* @dev Returns the average of two numbers. The result is rounded towards
* zero.
*/
function average(uint256 a, uint256 b) internal pure returns (uint256) {
// (a + b) / 2 can overflow.
return (a & b) + (a ^ b) / 2;
}
/**
* @dev Returns the ceiling of the division of two numbers.
*
* This differs from standard division with `/` in that it rounds up instead
* of rounding down.
*/
function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {
// (a + b - 1) / b can overflow on addition, so we distribute.
return a == 0 ? 0 : (a - 1) / b + 1;
}
/**
* @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
* @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
* with further edits by Uniswap Labs also under MIT license.
*/
function mulDiv(
uint256 x,
uint256 y,
uint256 denominator
) internal pure returns (uint256 result) {
unchecked {
// 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
// use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
// variables such that product = prod1 * 2^256 + prod0.
uint256 prod0; // Least significant 256 bits of the product
uint256 prod1; // Most significant 256 bits of the product
assembly {
let mm := mulmod(x, y, not(0))
prod0 := mul(x, y)
prod1 := sub(sub(mm, prod0), lt(mm, prod0))
}
// Handle non-overflow cases, 256 by 256 division.
if (prod1 == 0) {
return prod0 / denominator;
}
// Make sure the result is less than 2^256. Also prevents denominator == 0.
require(denominator > prod1);
///////////////////////////////////////////////
// 512 by 256 division.
///////////////////////////////////////////////
// Make division exact by subtracting the remainder from [prod1 prod0].
uint256 remainder;
assembly {
// Compute remainder using mulmod.
remainder := mulmod(x, y, denominator)
// Subtract 256 bit number from 512 bit number.
prod1 := sub(prod1, gt(remainder, prod0))
prod0 := sub(prod0, remainder)
}
// Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
// See https://cs.stackexchange.com/q/138556/92363.
// Does not overflow because the denominator cannot be zero at this stage in the function.
uint256 twos = denominator & (~denominator + 1);
assembly {
// Divide denominator by twos.
denominator := div(denominator, twos)
// Divide [prod1 prod0] by twos.
prod0 := div(prod0, twos)
// Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
twos := add(div(sub(0, twos), twos), 1)
}
// Shift in bits from prod1 into prod0.
prod0 |= prod1 * twos;
// Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
// that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
// four bits. That is, denominator * inv = 1 mod 2^4.
uint256 inverse = (3 * denominator) ^ 2;
// Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
// in modular arithmetic, doubling the correct bits in each step.
inverse *= 2 - denominator * inverse; // inverse mod 2^8
inverse *= 2 - denominator * inverse; // inverse mod 2^16
inverse *= 2 - denominator * inverse; // inverse mod 2^32
inverse *= 2 - denominator * inverse; // inverse mod 2^64
inverse *= 2 - denominator * inverse; // inverse mod 2^128
inverse *= 2 - denominator * inverse; // inverse mod 2^256
// Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
// This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
// less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
// is no longer required.
result = prod0 * inverse;
return result;
}
}
/**
* @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
*/
function mulDiv(
uint256 x,
uint256 y,
uint256 denominator,
Rounding rounding
) internal pure returns (uint256) {
uint256 result = mulDiv(x, y, denominator);
if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
result += 1;
}
return result;
}
/**
* @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.
*
* Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11).
*/
function sqrt(uint256 a) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
// For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.
//
// We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have
// `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.
//
// This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`
// → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`
// → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`
//
// Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.
uint256 result = 1 << (log2(a) >> 1);
// At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,
// since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at
// every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision
// into the expected uint128 result.
unchecked {
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
result = (result + a / result) >> 1;
return min(result, a / result);
}
}
/**
* @notice Calculates sqrt(a), following the selected rounding direction.
*/
function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = sqrt(a);
return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);
}
}
/**
* @dev Return the log in base 2, rounded down, of a positive value.
* Returns 0 if given 0.
*/
function log2(uint256 value) internal pure returns (uint256) {
uint256 result = 0;
unchecked {
if (value >> 128 > 0) {
value >>= 128;
result += 128;
}
if (value >> 64 > 0) {
value >>= 64;
result += 64;
}
if (value >> 32 > 0) {
value >>= 32;
result += 32;
}
if (value >> 16 > 0) {
value >>= 16;
result += 16;
}
if (value >> 8 > 0) {
value >>= 8;
result += 8;
}
if (value >> 4 > 0) {
value >>= 4;
result += 4;
}
if (value >> 2 > 0) {
value >>= 2;
result += 2;
}
if (value >> 1 > 0) {
result += 1;
}
}
return result;
}
/**
* @dev Return the log in base 2, following the selected rounding direction, of a positive value.
* Returns 0 if given 0.
*/
function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = log2(value);
return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);
}
}
/**
* @dev Return the log in base 10, rounded down, of a positive value.
* Returns 0 if given 0.
*/
function log10(uint256 value) internal pure returns (uint256) {
uint256 result = 0;
unchecked {
if (value >= 10**64) {
value /= 10**64;
result += 64;
}
if (value >= 10**32) {
value /= 10**32;
result += 32;
}
if (value >= 10**16) {
value /= 10**16;
result += 16;
}
if (value >= 10**8) {
value /= 10**8;
result += 8;
}
if (value >= 10**4) {
value /= 10**4;
result += 4;
}
if (value >= 10**2) {
value /= 10**2;
result += 2;
}
if (value >= 10**1) {
result += 1;
}
}
return result;
}
/**
* @dev Return the log in base 10, following the selected rounding direction, of a positive value.
* Returns 0 if given 0.
*/
function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = log10(value);
return result + (rounding == Rounding.Up && 10**result < value ? 1 : 0);
}
}
/**
* @dev Return the log in base 256, rounded down, of a positive value.
* Returns 0 if given 0.
*
* Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.
*/
function log256(uint256 value) internal pure returns (uint256) {
uint256 result = 0;
unchecked {
if (value >> 128 > 0) {
value >>= 128;
result += 16;
}
if (value >> 64 > 0) {
value >>= 64;
result += 8;
}
if (value >> 32 > 0) {
value >>= 32;
result += 4;
}
if (value >> 16 > 0) {
value >>= 16;
result += 2;
}
if (value >> 8 > 0) {
result += 1;
}
}
return result;
}
/**
* @dev Return the log in base 10, following the selected rounding direction, of a positive value.
* Returns 0 if given 0.
*/
function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {
unchecked {
uint256 result = log256(value);
return result + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0);
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";
/**
* @title OperatorFilterer
* @notice Abstract contract whose constructor automatically registers and optionally subscribes to or copies another
* registrant's entries in the OperatorFilterRegistry.
* @dev This smart contract is meant to be inherited by token contracts so they can use the following:
* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.
* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.
*/
abstract contract OperatorFilterer {
error OperatorNotAllowed(address operator);
IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY =
IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E);
constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {
// If an inheriting token contract is deployed to a network without the registry deployed, the modifier
// will not revert, but the contract will need to be registered with the registry once it is deployed in
// order for the modifier to filter addresses.
if (address(OPERATOR_FILTER_REGISTRY).code.length > 0) {
if (subscribe) {
OPERATOR_FILTER_REGISTRY.registerAndSubscribe(address(this), subscriptionOrRegistrantToCopy);
} else {
if (subscriptionOrRegistrantToCopy != address(0)) {
OPERATOR_FILTER_REGISTRY.registerAndCopyEntries(address(this), subscriptionOrRegistrantToCopy);
} else {
OPERATOR_FILTER_REGISTRY.register(address(this));
}
}
}
}
modifier onlyAllowedOperator(address from) virtual {
// Allow spending tokens from addresses with balance
// Note that this still allows listings and marketplaces with escrow to transfer tokens if transferred
// from an EOA.
if (from != msg.sender) {
_checkFilterOperator(msg.sender);
}
_;
}
modifier onlyAllowedOperatorApproval(address operator) virtual {
_checkFilterOperator(operator);
_;
}
function _checkFilterOperator(address operator) internal view virtual {
// Check registry code length to facilitate testing in environments without a deployed registry.
if (address(OPERATOR_FILTER_REGISTRY).code.length > 0) {
if (!OPERATOR_FILTER_REGISTRY.isOperatorAllowed(address(this), operator)) {
revert OperatorNotAllowed(operator);
}
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "./Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
import "./Math.sol";
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
unchecked {
uint256 length = Math.log10(value) + 1;
string memory buffer = new string(length);
uint256 ptr;
/// @solidity memory-safe-assembly
assembly {
ptr := add(buffer, add(32, length))
}
while (true) {
ptr--;
/// @solidity memory-safe-assembly
assembly {
mstore8(ptr, byte(mod(value, 10), _SYMBOLS))
}
value /= 10;
if (value == 0) break;
}
return buffer;
}
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
*/
function toHexString(uint256 value) internal pure returns (string memory) {
unchecked {
return toHexString(value, Math.log256(value) + 1);
}
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
*/
function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
/**
* @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
*/
function toHexString(address addr) internal pure returns (string memory) {
return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
}
}
View raw

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

This file has been truncated, but you can view the full file.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_1963": {
"entryPoint": null,
"id": 1963,
"parameterSlots": 3,
"returnSlots": 0
},
"@_3577": {
"entryPoint": null,
"id": 3577,
"parameterSlots": 2,
"returnSlots": 0
},
"@_3660": {
"entryPoint": null,
"id": 3660,
"parameterSlots": 0,
"returnSlots": 0
},
"@_372": {
"entryPoint": null,
"id": 372,
"parameterSlots": 0,
"returnSlots": 0
},
"@_423": {
"entryPoint": null,
"id": 423,
"parameterSlots": 1,
"returnSlots": 0
},
"@_msgSender_341": {
"entryPoint": 799,
"id": 341,
"parameterSlots": 0,
"returnSlots": 1
},
"@_setURI_943": {
"entryPoint": 771,
"id": 943,
"parameterSlots": 1,
"returnSlots": 0
},
"@_transferOwnership_3748": {
"entryPoint": 807,
"id": 3748,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 1468,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 1672,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 1543,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_addresst_address_fromMemory": {
"entryPoint": 1695,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1818,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1880,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": 1835,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1329,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1181,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1360,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1626,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1594,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1414,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1956,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1275,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1909,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1228,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1201,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1206,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1196,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1191,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1211,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 1646,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5277:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:18",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:18"
},
"nodeType": "YulFunctionCall",
"src": "67:9:18"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:18"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:18",
"type": ""
}
],
"src": "7:75:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:18"
},
"nodeType": "YulFunctionCall",
"src": "187:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:18"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:18"
},
"nodeType": "YulFunctionCall",
"src": "310:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:18"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:18"
},
"nodeType": "YulFunctionCall",
"src": "433:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:18"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "546:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "566:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "556:6:18"
},
"nodeType": "YulFunctionCall",
"src": "556:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "556:12:18"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "457:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "628:54:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "638:38:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "656:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "663:2:18",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "652:3:18"
},
"nodeType": "YulFunctionCall",
"src": "652:14:18"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "672:2:18",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "668:3:18"
},
"nodeType": "YulFunctionCall",
"src": "668:7:18"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "648:3:18"
},
"nodeType": "YulFunctionCall",
"src": "648:28:18"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "638:6:18"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "611:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "621:6:18",
"type": ""
}
],
"src": "580:102:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "716:152:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "733:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "736:77:18",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "726:6:18"
},
"nodeType": "YulFunctionCall",
"src": "726:88:18"
},
"nodeType": "YulExpressionStatement",
"src": "726:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "830:1:18",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "833:4:18",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "823:6:18"
},
"nodeType": "YulFunctionCall",
"src": "823:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "823:15:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "854:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "857:4:18",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "847:6:18"
},
"nodeType": "YulFunctionCall",
"src": "847:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "847:15:18"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "688:180:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "917:238:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "927:58:18",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "949:6:18"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "979:4:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "957:21:18"
},
"nodeType": "YulFunctionCall",
"src": "957:27:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "945:3:18"
},
"nodeType": "YulFunctionCall",
"src": "945:40:18"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "931:10:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1096:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1098:16:18"
},
"nodeType": "YulFunctionCall",
"src": "1098:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "1098:18:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1039:10:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1051:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1036:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1036:34:18"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1075:10:18"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1087:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1072:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1072:22:18"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1033:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1033:62:18"
},
"nodeType": "YulIf",
"src": "1030:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1134:2:18",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1138:10:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1127:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1127:22:18"
},
"nodeType": "YulExpressionStatement",
"src": "1127:22:18"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "903:6:18",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "911:4:18",
"type": ""
}
],
"src": "874:281:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1202:88:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1212:30:18",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1222:18:18"
},
"nodeType": "YulFunctionCall",
"src": "1222:20:18"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1212:6:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1271:6:18"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1279:4:18"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1251:19:18"
},
"nodeType": "YulFunctionCall",
"src": "1251:33:18"
},
"nodeType": "YulExpressionStatement",
"src": "1251:33:18"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1186:4:18",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1195:6:18",
"type": ""
}
],
"src": "1161:129:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:241:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1468:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1470:16:18"
},
"nodeType": "YulFunctionCall",
"src": "1470:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "1470:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1440:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1437:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1437:30:18"
},
"nodeType": "YulIf",
"src": "1434:56:18"
},
{
"nodeType": "YulAssignment",
"src": "1500:37:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1530:6:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1508:21:18"
},
"nodeType": "YulFunctionCall",
"src": "1508:29:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1500:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1574:23:18",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1586:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1592:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1582:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1582:15:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1574:4:18"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1347:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1358:4:18",
"type": ""
}
],
"src": "1296:308:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1659:258:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1669:10:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1678:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1673:1:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1738:63:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1763:3:18"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1768:1:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1759:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1759:11:18"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1782:3:18"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1787:1:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1778:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1778:11:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1772:5:18"
},
"nodeType": "YulFunctionCall",
"src": "1772:18:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1752:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1752:39:18"
},
"nodeType": "YulExpressionStatement",
"src": "1752:39:18"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1699:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1702:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1696:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1696:13:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1710:19:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1712:15:18",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1721:1:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1724:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1717:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1717:10:18"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1712:1:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1692:3:18",
"statements": []
},
"src": "1688:113:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1835:76:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1885:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1890:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1881:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1881:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1899:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1874:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1874:27:18"
},
"nodeType": "YulExpressionStatement",
"src": "1874:27:18"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1816:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1819:6:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1813:2:18"
},
"nodeType": "YulFunctionCall",
"src": "1813:13:18"
},
"nodeType": "YulIf",
"src": "1810:101:18"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1641:3:18",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1646:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1651:6:18",
"type": ""
}
],
"src": "1610:307:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:326:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2028:75:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2095:6:18"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2053:41:18"
},
"nodeType": "YulFunctionCall",
"src": "2053:49:18"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2037:15:18"
},
"nodeType": "YulFunctionCall",
"src": "2037:66:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2028:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2119:5:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2126:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2112:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2112:21:18"
},
"nodeType": "YulExpressionStatement",
"src": "2112:21:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2142:27:18",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2157:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2164:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2153:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2153:16:18"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2146:3:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2207:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2209:77:18"
},
"nodeType": "YulFunctionCall",
"src": "2209:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "2209:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2188:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2193:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2184:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2184:16:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2202:3:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2181:2:18"
},
"nodeType": "YulFunctionCall",
"src": "2181:25:18"
},
"nodeType": "YulIf",
"src": "2178:112:18"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2321:3:18"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2326:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:18"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2299:21:18"
},
"nodeType": "YulFunctionCall",
"src": "2299:39:18"
},
"nodeType": "YulExpressionStatement",
"src": "2299:39:18"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1991:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1996:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2004:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2012:5:18",
"type": ""
}
],
"src": "1923:421:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2437:282:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2486:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2488:77:18"
},
"nodeType": "YulFunctionCall",
"src": "2488:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "2488:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2465:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2473:4:18",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2461:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2461:17:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2480:3:18"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2457:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2457:27:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2450:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2450:35:18"
},
"nodeType": "YulIf",
"src": "2447:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2578:27:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2598:6:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2592:5:18"
},
"nodeType": "YulFunctionCall",
"src": "2592:13:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2582:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2614:99:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2686:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2694:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2682:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2682:17:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2701:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2709:3:18"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "2623:58:18"
},
"nodeType": "YulFunctionCall",
"src": "2623:90:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2614:5:18"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2415:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2423:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2431:5:18",
"type": ""
}
],
"src": "2364:355:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2770:81:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2780:65:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2795:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2802:42:18",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2791:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2791:54:18"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2780:7:18"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2752:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2762:7:18",
"type": ""
}
],
"src": "2725:126:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2902:51:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2912:35:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2941:5:18"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2923:17:18"
},
"nodeType": "YulFunctionCall",
"src": "2923:24:18"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2912:7:18"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2884:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2894:7:18",
"type": ""
}
],
"src": "2857:96:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3002:79:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3059:16:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3068:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3071:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3061:6:18"
},
"nodeType": "YulFunctionCall",
"src": "3061:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "3061:12:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3025:5:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3050:5:18"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3032:17:18"
},
"nodeType": "YulFunctionCall",
"src": "3032:24:18"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3022:2:18"
},
"nodeType": "YulFunctionCall",
"src": "3022:35:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3015:6:18"
},
"nodeType": "YulFunctionCall",
"src": "3015:43:18"
},
"nodeType": "YulIf",
"src": "3012:63:18"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2995:5:18",
"type": ""
}
],
"src": "2959:122:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3150:80:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3160:22:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3175:6:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3169:5:18"
},
"nodeType": "YulFunctionCall",
"src": "3169:13:18"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3160:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3218:5:18"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "3191:26:18"
},
"nodeType": "YulFunctionCall",
"src": "3191:33:18"
},
"nodeType": "YulExpressionStatement",
"src": "3191:33:18"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3128:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3136:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3144:5:18",
"type": ""
}
],
"src": "3087:143:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3357:715:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3403:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3405:77:18"
},
"nodeType": "YulFunctionCall",
"src": "3405:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "3405:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3378:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3387:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3374:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3374:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3399:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3370:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3370:32:18"
},
"nodeType": "YulIf",
"src": "3367:119:18"
},
{
"nodeType": "YulBlock",
"src": "3496:291:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3511:38:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3535:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3546:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3531:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3531:17:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3525:5:18"
},
"nodeType": "YulFunctionCall",
"src": "3525:24:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3515:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3596:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3598:77:18"
},
"nodeType": "YulFunctionCall",
"src": "3598:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "3598:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3568:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3576:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3565:2:18"
},
"nodeType": "YulFunctionCall",
"src": "3565:30:18"
},
"nodeType": "YulIf",
"src": "3562:117:18"
},
{
"nodeType": "YulAssignment",
"src": "3693:84:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3749:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3760:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3745:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3745:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3769:7:18"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3703:41:18"
},
"nodeType": "YulFunctionCall",
"src": "3703:74:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3693:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3797:129:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3812:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3826:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3816:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3842:74:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3888:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3899:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3884:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3884:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3908:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "3852:31:18"
},
"nodeType": "YulFunctionCall",
"src": "3852:64:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3842:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3936:129:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3951:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3965:2:18",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3955:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3981:74:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4027:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4038:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4023:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4023:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4047:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "3991:31:18"
},
"nodeType": "YulFunctionCall",
"src": "3991:64:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3981:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_addresst_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3311:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3322:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3334:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3342:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3350:6:18",
"type": ""
}
],
"src": "3236:836:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4143:53:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4160:3:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4183:5:18"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4165:17:18"
},
"nodeType": "YulFunctionCall",
"src": "4165:24:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4153:6:18"
},
"nodeType": "YulFunctionCall",
"src": "4153:37:18"
},
"nodeType": "YulExpressionStatement",
"src": "4153:37:18"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4131:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4138:3:18",
"type": ""
}
],
"src": "4078:118:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4328:206:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4338:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4350:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4361:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4346:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4346:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4338:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4418:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4431:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4442:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4427:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4427:17:18"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "4374:43:18"
},
"nodeType": "YulFunctionCall",
"src": "4374:71:18"
},
"nodeType": "YulExpressionStatement",
"src": "4374:71:18"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4499:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4512:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4523:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4508:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4508:18:18"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "4455:43:18"
},
"nodeType": "YulFunctionCall",
"src": "4455:72:18"
},
"nodeType": "YulExpressionStatement",
"src": "4455:72:18"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4292:9:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4304:6:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4312:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4323:4:18",
"type": ""
}
],
"src": "4202:332:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4638:124:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4648:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4660:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4671:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4656:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4656:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4648:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4728:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4741:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4752:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4737:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4737:17:18"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "4684:43:18"
},
"nodeType": "YulFunctionCall",
"src": "4684:71:18"
},
"nodeType": "YulExpressionStatement",
"src": "4684:71:18"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4610:9:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4622:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4633:4:18",
"type": ""
}
],
"src": "4540:222:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4796:152:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4813:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4816:77:18",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4806:6:18"
},
"nodeType": "YulFunctionCall",
"src": "4806:88:18"
},
"nodeType": "YulExpressionStatement",
"src": "4806:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4910:1:18",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4913:4:18",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4903:6:18"
},
"nodeType": "YulFunctionCall",
"src": "4903:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "4903:15:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4934:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4937:4:18",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4927:6:18"
},
"nodeType": "YulFunctionCall",
"src": "4927:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "4927:15:18"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "4768:180:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5005:269:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5015:22:18",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5029:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5035:1:18",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "5025:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5025:12:18"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5015:6:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5046:38:18",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5076:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5082:1:18",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5072:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5072:12:18"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "5050:18:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5123:51:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5137:27:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5151:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5159:4:18",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5147:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5147:17:18"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5137:6:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "5103:18:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5096:6:18"
},
"nodeType": "YulFunctionCall",
"src": "5096:26:18"
},
"nodeType": "YulIf",
"src": "5093:81:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5226:42:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "5240:16:18"
},
"nodeType": "YulFunctionCall",
"src": "5240:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "5240:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "5190:18:18"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5213:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5221:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5210:2:18"
},
"nodeType": "YulFunctionCall",
"src": "5210:14:18"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5187:2:18"
},
"nodeType": "YulFunctionCall",
"src": "5187:38:18"
},
"nodeType": "YulIf",
"src": "5184:84:18"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4989:4:18",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4998:6:18",
"type": ""
}
],
"src": "4954:320:18"
}
]
},
"contents": "{\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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\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 abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\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 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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\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_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\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 panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 18,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b506040516200595f3803806200595f83398181016040528101906200003791906200069f565b733cc6cdda760b79bafa08df41ecfa224f810dceb660018462000060816200030360201b60201c565b5062000081620000756200031f60201b60201c565b6200032760201b60201c565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002765780156200013c576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b8152600401620001029291906200072b565b600060405180830381600087803b1580156200011d57600080fd5b505af115801562000132573d6000803e3d6000fd5b5050505062000275565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620001f6576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b8152600401620001bc9291906200072b565b600060405180830381600087803b158015620001d757600080fd5b505af1158015620001ec573d6000803e3d6000fd5b5050505062000274565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b81526004016200023f919062000758565b600060405180830381600087803b1580156200025a57600080fd5b505af11580156200026f573d6000803e3d6000fd5b505050505b5b5b505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620007d9565b80600390805190602001906200031b929190620003ed565b5050565b600033905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620003fb90620007a4565b90600052602060002090601f0160209004810192826200041f57600085556200046b565b82601f106200043a57805160ff19168380011785556200046b565b828001600101855582156200046b579182015b828111156200046a5782518255916020019190600101906200044d565b5b5090506200047a91906200047e565b5090565b5b80821115620004995760008160009055506001016200047f565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200050682620004bb565b810181811067ffffffffffffffff82111715620005285762000527620004cc565b5b80604052505050565b60006200053d6200049d565b90506200054b8282620004fb565b919050565b600067ffffffffffffffff8211156200056e576200056d620004cc565b5b6200057982620004bb565b9050602081019050919050565b60005b83811015620005a657808201518184015260208101905062000589565b83811115620005b6576000848401525b50505050565b6000620005d3620005cd8462000550565b62000531565b905082815260208101848484011115620005f257620005f1620004b6565b5b620005ff84828562000586565b509392505050565b600082601f8301126200061f576200061e620004b1565b5b815162000631848260208601620005bc565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000667826200063a565b9050919050565b62000679816200065a565b81146200068557600080fd5b50565b60008151905062000699816200066e565b92915050565b600080600060608486031215620006bb57620006ba620004a7565b5b600084015167ffffffffffffffff811115620006dc57620006db620004ac565b5b620006ea8682870162000607565b9350506020620006fd8682870162000688565b9250506040620007108682870162000688565b9150509250925092565b62000725816200065a565b82525050565b60006040820190506200074260008301856200071a565b6200075160208301846200071a565b9392505050565b60006020820190506200076f60008301846200071a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007bd57607f821691505b602082108103620007d357620007d262000775565b5b50919050565b61517680620007e96000396000f3fe608060405234801561001057600080fd5b50600436106101e45760003560e01c806369b520171161010f5780639abc8320116100a2578063e2c7f33811610071578063e2c7f33814610566578063e985e9c514610582578063f242432a146105b2578063f2fde38b146105ce576101e4565b80639abc8320146104f2578063a22cb46514610510578063af8777071461052c578063d0414c9d14610548576101e4565b806382295a2d116100de57806382295a2d146104805780638d2bb0931461049c5780638da5cb5b146104b857806398faf29b146104d6576101e4565b806369b520171461040e5780636c52c3fb1461042a578063704fe71014610446578063715018a614610476576101e4565b80631f320331116101875780633a330022116101565780633a3300221461038657806341f43434146103a25780634e1273f4146103c057806358884432146103f0576101e4565b80631f320331146102ed5780632a55205a1461031d5780632eb2c2d61461034e578063337648b21461036a576101e4565b806306fdde03116101c357806306fdde0314610265578063084e9e24146102835780630e89341c1461029f57806318160ddd146102cf576101e4565b8062fdd58e146101e957806301ffc9a71461021957806302fe530514610249575b600080fd5b61020360048036038101906101fe91906131c8565b6105ea565b6040516102109190613217565b60405180910390f35b610233600480360381019061022e919061328a565b6106b2565b60405161024091906132d2565b60405180910390f35b610263600480360381019061025e9190613433565b6106c4565b005b61026d61072a565b60405161027a9190613504565b60405180910390f35b61029d600480360381019061029891906135c7565b610763565b005b6102b960048036038101906102b49190613670565b61093a565b6040516102c69190613504565b60405180910390f35b6102d7610978565b6040516102e49190613217565b60405180910390f35b6103076004803603810190610302919061369d565b61097e565b6040516103149190613217565b60405180910390f35b610337600480360381019061033291906136dd565b6109a3565b60405161034592919061372c565b60405180910390f35b6103686004803603810190610363919061381d565b610a74565b005b610384600480360381019061037f91906139cd565b610ac7565b005b6103a0600480360381019061039b9190613a45565b610be5565b005b6103aa610c31565b6040516103b79190613ad1565b60405180910390f35b6103da60048036038101906103d59190613baf565b610c43565b6040516103e79190613ce5565b60405180910390f35b6103f8610d5c565b6040516104059190613d07565b60405180910390f35b61042860048036038101906104239190613d22565b610d82565b005b610444600480360381019061043f9190613a45565b610ff5565b005b610460600480360381019061045b9190613670565b611041565b60405161046d9190613504565b60405180910390f35b61047e6110e1565b005b61049a60048036038101906104959190613e3b565b6110f5565b005b6104b660048036038101906104b19190613e97565b61117b565b005b6104c0611416565b6040516104cd9190613d07565b60405180910390f35b6104f060048036038101906104eb9190613f40565b611440565b005b6104fa611513565b6040516105079190613504565b60405180910390f35b61052a60048036038101906105259190614015565b6115a1565b005b61054660048036038101906105419190614055565b6115ba565b005b610550611a9c565b60405161055d9190613d07565b60405180910390f35b610580600480360381019061057b919061416e565b611ac2565b005b61059c600480360381019061059791906141c1565b611ada565b6040516105a991906132d2565b60405180910390f35b6105cc60048036038101906105c79190614201565b611b6e565b005b6105e860048036038101906105e39190613a45565b611bc1565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361065a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106519061430a565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006106bd82611c44565b9050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071e57600080fd5b61072781611cbe565b50565b6040518060400160405280601281526020017f566572736520576f726b732076302e332e30000000000000000000000000000081525081565b6107828473ffffffffffffffffffffffffffffffffffffffff16611cd8565b15610932578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016107c895949392919061437f565b6020604051808303816000875af192505050801561080457506040513d601f19601f8201168201806040525081019061080191906143ee565b60015b6108a957610810614428565b806308c379a00361086c575061082461444a565b8061082f575061086e565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108639190613504565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a09061454c565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610930576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610927906145de565b60405180910390fd5b505b505050505050565b60606003600160008481526020019081526020016000206040516020016109629291906146fd565b6040516020818303038152906040529050919050565b60065481565b6000602052816000526040600020602052806000526040600020600091509150505481565b6000806000600560008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905080600001519250612710816020015162ffffff1685610a609190614750565b610a6a91906147d9565b9150509250929050565b843373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ab257610ab133611cfb565b5b610abf8686868686611df8565b505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2157600080fd5b8051825114610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90614856565b60405180910390fd5b60005b8251811015610be057818181518110610b8457610b83614876565b5b602002602001015160016000858481518110610ba357610ba2614876565b5b602002602001015181526020019081526020016000209080519060200190610bcc92919061307d565b508080610bd8906148a5565b915050610b68565b505050565b610bed611e99565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6daaeb6d7670e522a718067333cd4e81565b60608151835114610c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c809061495f565b60405180910390fd5b6000835167ffffffffffffffff811115610ca657610ca5613308565b5b604051908082528060200260200182016040528015610cd45781602001602082028036833780820191505090505b50905060005b8451811015610d5157610d21858281518110610cf957610cf8614876565b5b6020026020010151858381518110610d1457610d13614876565b5b60200260200101516105ea565b828281518110610d3457610d33614876565b5b60200260200101818152505080610d4a906148a5565b9050610cda565b508091505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ddc57600080fd5b81518551148015610dee575080518551145b610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490614856565b60405180910390fd5b610e4886868660405180602001604052806000815250611f17565b60005b8551811015610f40576000828281518110610e6957610e68614876565b5b60200260200101511115610ed157610ed0868281518110610e8d57610e8c614876565b5b6020026020010151848381518110610ea857610ea7614876565b5b6020026020010151848481518110610ec357610ec2614876565b5b6020026020010151612177565b5b838181518110610ee457610ee3614876565b5b602002602001015160016000888481518110610f0357610f02614876565b5b602002602001015181526020019081526020016000209080519060200190610f2c92919061307d565b508080610f38906148a5565b915050610e4b565b50600080600090505b8651811015610fd25760005b8651811015610fbe57868181518110610f7157610f70614876565b5b6020026020010151888381518110610f8c57610f8b614876565b5b6020026020010151610f9e9190614750565b83610fa9919061497f565b92508080610fb6906148a5565b915050610f55565b508080610fca906148a5565b915050610f49565b508060066000828254610fe5919061497f565b9250508190555050505050505050565b610ffd611e99565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160205280600052604060002060009150905080546110609061462d565b80601f016020809104026020016040519081016040528092919081815260200182805461108c9061462d565b80156110d95780601f106110ae576101008083540402835291602001916110d9565b820191906000526020600020905b8154815290600101906020018083116110bc57829003601f168201915b505050505081565b6110e9611e99565b6110f36000612273565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114f57600080fd5b8060016000848152602001908152602001600020908051906020019061117692919061307d565b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90614a21565b60405180910390fd5b600160008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112a4919061497f565b925050819055506001600660008282546112be919061497f565b92505081905550826001600086815260200190815260200160002090805190602001906112ec92919061307d565b50600081111561130257611301848383612177565b5b600061130c612339565b90508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62886001604051611386929190614a7c565b60405180910390a48573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62886001604051611405929190614a7c565b60405180910390a450505050505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461149a57600080fd5b6114b586868660405180602001604052806000815250612341565b60008111156114ca576114c9858383612177565b5b826001600087815260200190815260200160002090805190602001906114f192919061307d565b508360066000828254611504919061497f565b92505081905550505050505050565b600380546115209061462d565b80601f016020809104026020016040519081016040528092919081815260200182805461154c9061462d565b80156115995780601f1061156e57610100808354040283529160200191611599565b820191906000526020600020905b81548152906001019060200180831161157c57829003601f168201915b505050505081565b816115ab81611cfb565b6115b583836124f1565b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461161457600080fd5b81518451148015611626575080518451145b611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90614856565b60405180910390fd5b600061166f612339565b905060005b8551811015611a7857600160008088848151811061169557611694614876565b5b6020026020010151815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116f7919061497f565b925050819055506117378260008a89858151811061171857611717614876565b5b6020026020010151600160405180602001604052806000815250610763565b600083828151811061174c5761174b614876565b5b602002602001015111156117b4576117b38682815181106117705761176f614876565b5b602002602001015185838151811061178b5761178a614876565b5b60200260200101518584815181106117a6576117a5614876565b5b6020026020010151612177565b5b8481815181106117c7576117c6614876565b5b6020026020010151600160008884815181106117e6576117e5614876565b5b60200260200101518152602001908152602001600020908051906020019061180f92919061307d565b50600073ffffffffffffffffffffffffffffffffffffffff1687828151811061183b5761183a614876565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036118fd578773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628985815181106118d8576118d7614876565b5b602002602001015160016040516118f0929190614a7c565b60405180910390a4611a65565b8681815181106119105761190f614876565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289858151811061199157611990614876565b5b602002602001015160016040516119a9929190614a7c565b60405180910390a48773ffffffffffffffffffffffffffffffffffffffff168782815181106119db576119da614876565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898581518110611a4457611a43614876565b5b60200260200101516001604051611a5c929190614a7c565b60405180910390a45b8080611a70906148a5565b915050611674565b50845160066000828254611a8c919061497f565b9250508190555050505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611aca611e99565b611ad5838383612177565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b843373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611bac57611bab33611cfb565b5b611bb98686868686612507565b505050505050565b611bc9611e99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f90614b17565b60405180910390fd5b611c4181612273565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611cb75750611cb6826125a8565b5b9050919050565b8060039080519060200190611cd492919061307d565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611df5576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611d72929190614b37565b602060405180830381865afa158015611d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db39190614b75565b611df457806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401611deb9190613d07565b60405180910390fd5b5b50565b611e00612339565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611e465750611e4585611e40612339565b611ada565b5b611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c90614c14565b60405180910390fd5b611e92858585858561268a565b5050505050565b611ea1612339565b73ffffffffffffffffffffffffffffffffffffffff16611ebf611416565b73ffffffffffffffffffffffffffffffffffffffff1614611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c90614c80565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7d90614d12565b60405180910390fd5b8151835114611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc190614da4565b60405180910390fd5b6000611fd4612339565b9050611fe5816000878787876129ab565b60005b84518110156121515783818151811061200457612003614876565b5b602002602001015160008087848151811061202257612021614876565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612084919061497f565b925050819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6288858151811061210557612104614876565b5b60200260200101518886815181106121205761211f614876565b5b6020026020010151604051612136929190614dc4565b60405180910390a48080612149906148a5565b915050611fe8565b50612161816000878787876129b3565b612170816000878787876129bb565b5050505050565b6127108111156121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b390614e39565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff168152506005600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff160217905550905050505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a790614d12565b60405180910390fd5b60006123ba612339565b905060006123c785612b92565b905060006123d485612b92565b90506123e5836000898585896129ab565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612444919061497f565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289896040516124c2929190614dc4565b60405180910390a46124d9836000898585896129b3565b6124e883600089898989610763565b50505050505050565b6125036124fc612339565b8383612c0c565b5050565b61250f612339565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061255557506125548561254f612339565b611ada565b5b612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258b90614ecb565b60405180910390fd5b6125a18585858585612d78565b5050505050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061267357507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612683575061268282613013565b5b9050919050565b81518351146126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c590614da4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273490614f5d565b60405180910390fd5b6000612747612339565b90506127578187878787876129ab565b60005b845181101561290857600085828151811061277857612777614876565b5b60200260200101519050600085838151811061279757612796614876565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282f90614fef565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128ed919061497f565b9250508190555050505080612901906148a5565b905061275a565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161297f92919061500f565b60405180910390a46129958187878787876129b3565b6129a38187878787876129bb565b505050505050565b505050505050565b505050505050565b6129da8473ffffffffffffffffffffffffffffffffffffffff16611cd8565b15612b8a578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612a20959493929190615046565b6020604051808303816000875af1925050508015612a5c57506040513d601f19601f82011682018060405250810190612a5991906143ee565b60015b612b0157612a68614428565b806308c379a003612ac45750612a7c61444a565b80612a875750612ac6565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abb9190613504565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af89061454c565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7f906145de565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115612bb157612bb0613308565b5b604051908082528060200260200182016040528015612bdf5781602001602082028036833780820191505090505b5090508281600081518110612bf757612bf6614876565b5b60200260200101818152505080915050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7190615120565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612d6b91906132d2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde90614f5d565b60405180910390fd5b6000612df1612339565b90506000612dfe85612b92565b90506000612e0b85612b92565b9050612e1b8389898585896129ab565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015612eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea990614fef565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f67919061497f565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051612fe4929190614dc4565b60405180910390a4612ffa848a8a86868a6129b3565b613008848a8a8a8a8a610763565b505050505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8280546130899061462d565b90600052602060002090601f0160209004810192826130ab57600085556130f2565b82601f106130c457805160ff19168380011785556130f2565b828001600101855582156130f2579182015b828111156130f15782518255916020019190600101906130d6565b5b5090506130ff9190613103565b5090565b5b8082111561311c576000816000905550600101613104565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061315f82613134565b9050919050565b61316f81613154565b811461317a57600080fd5b50565b60008135905061318c81613166565b92915050565b6000819050919050565b6131a581613192565b81146131b057600080fd5b50565b6000813590506131c28161319c565b92915050565b600080604083850312156131df576131de61312a565b5b60006131ed8582860161317d565b92505060206131fe858286016131b3565b9150509250929050565b61321181613192565b82525050565b600060208201905061322c6000830184613208565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61326781613232565b811461327257600080fd5b50565b6000813590506132848161325e565b92915050565b6000602082840312156132a05761329f61312a565b5b60006132ae84828501613275565b91505092915050565b60008115159050919050565b6132cc816132b7565b82525050565b60006020820190506132e760008301846132c3565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613340826132f7565b810181811067ffffffffffffffff8211171561335f5761335e613308565b5b80604052505050565b6000613372613120565b905061337e8282613337565b919050565b600067ffffffffffffffff82111561339e5761339d613308565b5b6133a7826132f7565b9050602081019050919050565b82818337600083830152505050565b60006133d66133d184613383565b613368565b9050828152602081018484840111156133f2576133f16132f2565b5b6133fd8482856133b4565b509392505050565b600082601f83011261341a576134196132ed565b5b813561342a8482602086016133c3565b91505092915050565b6000602082840312156134495761344861312a565b5b600082013567ffffffffffffffff8111156134675761346661312f565b5b61347384828501613405565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134b657808201518184015260208101905061349b565b838111156134c5576000848401525b50505050565b60006134d68261347c565b6134e08185613487565b93506134f0818560208601613498565b6134f9816132f7565b840191505092915050565b6000602082019050818103600083015261351e81846134cb565b905092915050565b600067ffffffffffffffff82111561354157613540613308565b5b61354a826132f7565b9050602081019050919050565b600061356a61356584613526565b613368565b905082815260208101848484011115613586576135856132f2565b5b6135918482856133b4565b509392505050565b600082601f8301126135ae576135ad6132ed565b5b81356135be848260208601613557565b91505092915050565b60008060008060008060c087890312156135e4576135e361312a565b5b60006135f289828a0161317d565b965050602061360389828a0161317d565b955050604061361489828a0161317d565b945050606061362589828a016131b3565b935050608061363689828a016131b3565b92505060a087013567ffffffffffffffff8111156136575761365661312f565b5b61366389828a01613599565b9150509295509295509295565b6000602082840312156136865761368561312a565b5b6000613694848285016131b3565b91505092915050565b600080604083850312156136b4576136b361312a565b5b60006136c2858286016131b3565b92505060206136d38582860161317d565b9150509250929050565b600080604083850312156136f4576136f361312a565b5b6000613702858286016131b3565b9250506020613713858286016131b3565b9150509250929050565b61372681613154565b82525050565b6000604082019050613741600083018561371d565b61374e6020830184613208565b9392505050565b600067ffffffffffffffff8211156137705761376f613308565b5b602082029050602081019050919050565b600080fd5b600061379961379484613755565b613368565b905080838252602082019050602084028301858111156137bc576137bb613781565b5b835b818110156137e557806137d188826131b3565b8452602084019350506020810190506137be565b5050509392505050565b600082601f830112613804576138036132ed565b5b8135613814848260208601613786565b91505092915050565b600080600080600060a086880312156138395761383861312a565b5b60006138478882890161317d565b95505060206138588882890161317d565b945050604086013567ffffffffffffffff8111156138795761387861312f565b5b613885888289016137ef565b935050606086013567ffffffffffffffff8111156138a6576138a561312f565b5b6138b2888289016137ef565b925050608086013567ffffffffffffffff8111156138d3576138d261312f565b5b6138df88828901613599565b9150509295509295909350565b600067ffffffffffffffff82111561390757613906613308565b5b602082029050602081019050919050565b600061392b613926846138ec565b613368565b9050808382526020820190506020840283018581111561394e5761394d613781565b5b835b8181101561399557803567ffffffffffffffff811115613973576139726132ed565b5b8086016139808982613405565b85526020850194505050602081019050613950565b5050509392505050565b600082601f8301126139b4576139b36132ed565b5b81356139c4848260208601613918565b91505092915050565b600080604083850312156139e4576139e361312a565b5b600083013567ffffffffffffffff811115613a0257613a0161312f565b5b613a0e858286016137ef565b925050602083013567ffffffffffffffff811115613a2f57613a2e61312f565b5b613a3b8582860161399f565b9150509250929050565b600060208284031215613a5b57613a5a61312a565b5b6000613a698482850161317d565b91505092915050565b6000819050919050565b6000613a97613a92613a8d84613134565b613a72565b613134565b9050919050565b6000613aa982613a7c565b9050919050565b6000613abb82613a9e565b9050919050565b613acb81613ab0565b82525050565b6000602082019050613ae66000830184613ac2565b92915050565b600067ffffffffffffffff821115613b0757613b06613308565b5b602082029050602081019050919050565b6000613b2b613b2684613aec565b613368565b90508083825260208201905060208402830185811115613b4e57613b4d613781565b5b835b81811015613b775780613b63888261317d565b845260208401935050602081019050613b50565b5050509392505050565b600082601f830112613b9657613b956132ed565b5b8135613ba6848260208601613b18565b91505092915050565b60008060408385031215613bc657613bc561312a565b5b600083013567ffffffffffffffff811115613be457613be361312f565b5b613bf085828601613b81565b925050602083013567ffffffffffffffff811115613c1157613c1061312f565b5b613c1d858286016137ef565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c5c81613192565b82525050565b6000613c6e8383613c53565b60208301905092915050565b6000602082019050919050565b6000613c9282613c27565b613c9c8185613c32565b9350613ca783613c43565b8060005b83811015613cd8578151613cbf8882613c62565b9750613cca83613c7a565b925050600181019050613cab565b5085935050505092915050565b60006020820190508181036000830152613cff8184613c87565b905092915050565b6000602082019050613d1c600083018461371d565b92915050565b60008060008060008060c08789031215613d3f57613d3e61312a565b5b6000613d4d89828a0161317d565b965050602087013567ffffffffffffffff811115613d6e57613d6d61312f565b5b613d7a89828a016137ef565b955050604087013567ffffffffffffffff811115613d9b57613d9a61312f565b5b613da789828a016137ef565b945050606087013567ffffffffffffffff811115613dc857613dc761312f565b5b613dd489828a0161399f565b935050608087013567ffffffffffffffff811115613df557613df461312f565b5b613e0189828a01613b81565b92505060a087013567ffffffffffffffff811115613e2257613e2161312f565b5b613e2e89828a016137ef565b9150509295509295509295565b60008060408385031215613e5257613e5161312a565b5b6000613e60858286016131b3565b925050602083013567ffffffffffffffff811115613e8157613e8061312f565b5b613e8d85828601613405565b9150509250929050565b60008060008060008060c08789031215613eb457613eb361312a565b5b6000613ec289828a0161317d565b9650506020613ed389828a0161317d565b9550506040613ee489828a016131b3565b945050606087013567ffffffffffffffff811115613f0557613f0461312f565b5b613f1189828a01613405565b9350506080613f2289828a0161317d565b92505060a0613f3389828a016131b3565b9150509295509295509295565b60008060008060008060c08789031215613f5d57613f5c61312a565b5b6000613f6b89828a0161317d565b9650506020613f7c89828a016131b3565b9550506040613f8d89828a016131b3565b945050606087013567ffffffffffffffff811115613fae57613fad61312f565b5b613fba89828a01613405565b9350506080613fcb89828a0161317d565b92505060a0613fdc89828a016131b3565b9150509295509295509295565b613ff2816132b7565b8114613ffd57600080fd5b50565b60008135905061400f81613fe9565b92915050565b6000806040838503121561402c5761402b61312a565b5b600061403a8582860161317d565b925050602061404b85828601614000565b9150509250929050565b60008060008060008060c087890312156140725761407161312a565b5b600061408089828a0161317d565b965050602087013567ffffffffffffffff8111156140a1576140a061312f565b5b6140ad89828a01613b81565b955050604087013567ffffffffffffffff8111156140ce576140cd61312f565b5b6140da89828a016137ef565b945050606087013567ffffffffffffffff8111156140fb576140fa61312f565b5b61410789828a0161399f565b935050608087013567ffffffffffffffff8111156141285761412761312f565b5b61413489828a01613b81565b92505060a087013567ffffffffffffffff8111156141555761415461312f565b5b61416189828a016137ef565b9150509295509295509295565b6000806000606084860312156141875761418661312a565b5b6000614195868287016131b3565b93505060206141a68682870161317d565b92505060406141b7868287016131b3565b9150509250925092565b600080604083850312156141d8576141d761312a565b5b60006141e68582860161317d565b92505060206141f78582860161317d565b9150509250929050565b600080600080600060a0868803121561421d5761421c61312a565b5b600061422b8882890161317d565b955050602061423c8882890161317d565b945050604061424d888289016131b3565b935050606061425e888289016131b3565b925050608086013567ffffffffffffffff81111561427f5761427e61312f565b5b61428b88828901613599565b9150509295509295909350565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006142f4602b83613487565b91506142ff82614298565b604082019050919050565b60006020820190508181036000830152614323816142e7565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006143518261432a565b61435b8185614335565b935061436b818560208601613498565b614374816132f7565b840191505092915050565b600060a082019050614394600083018861371d565b6143a1602083018761371d565b6143ae6040830186613208565b6143bb6060830185613208565b81810360808301526143cd8184614346565b90509695505050505050565b6000815190506143e88161325e565b92915050565b6000602082840312156144045761440361312a565b5b6000614412848285016143d9565b91505092915050565b60008160e01c9050919050565b600060033d11156144475760046000803e61444460005161441b565b90505b90565b600060443d106144d75761445c613120565b60043d036004823e80513d602482011167ffffffffffffffff821117156144845750506144d7565b808201805167ffffffffffffffff8111156144a257505050506144d7565b80602083010160043d0385018111156144bf5750505050506144d7565b6144ce82602001850186613337565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000614536603483613487565b9150614541826144da565b604082019050919050565b6000602082019050818103600083015261456581614529565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006145c8602883613487565b91506145d38261456c565b604082019050919050565b600060208201905081810360008301526145f7816145bb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061464557607f821691505b602082108103614658576146576145fe565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461468b8161462d565b614695818661465e565b945060018216600081146146b057600181146146c1576146f4565b60ff198316865281860193506146f4565b6146ca85614669565b60005b838110156146ec578154818901526001820191506020810190506146cd565b838801955050505b50505092915050565b6000614709828561467e565b9150614715828461467e565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061475b82613192565b915061476683613192565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561479f5761479e614721565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147e482613192565b91506147ef83613192565b9250826147ff576147fe6147aa565b5b828204905092915050565b7f455243313135353a20417272617973206c656e677468206d69736d6174636800600082015250565b6000614840601f83613487565b915061484b8261480a565b602082019050919050565b6000602082019050818103600083015261486f81614833565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006148b082613192565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148e2576148e1614721565b5b600182019050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000614949602983613487565b9150614954826148ed565b604082019050919050565b600060208201905081810360008301526149788161493c565b9050919050565b600061498a82613192565b915061499583613192565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156149ca576149c9614721565b5b828201905092915050565b7f6d696e7420746f20746865207a65726f20616464726573730000000000000000600082015250565b6000614a0b601883613487565b9150614a16826149d5565b602082019050919050565b60006020820190508181036000830152614a3a816149fe565b9050919050565b6000819050919050565b6000614a66614a61614a5c84614a41565b613a72565b613192565b9050919050565b614a7681614a4b565b82525050565b6000604082019050614a916000830185613208565b614a9e6020830184614a6d565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b01602683613487565b9150614b0c82614aa5565b604082019050919050565b60006020820190508181036000830152614b3081614af4565b9050919050565b6000604082019050614b4c600083018561371d565b614b59602083018461371d565b9392505050565b600081519050614b6f81613fe9565b92915050565b600060208284031215614b8b57614b8a61312a565b5b6000614b9984828501614b60565b91505092915050565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b6000614bfe603283613487565b9150614c0982614ba2565b604082019050919050565b60006020820190508181036000830152614c2d81614bf1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c6a602083613487565b9150614c7582614c34565b602082019050919050565b60006020820190508181036000830152614c9981614c5d565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614cfc602183613487565b9150614d0782614ca0565b604082019050919050565b60006020820190508181036000830152614d2b81614cef565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000614d8e602883613487565b9150614d9982614d32565b604082019050919050565b60006020820190508181036000830152614dbd81614d81565b9050919050565b6000604082019050614dd96000830185613208565b614de66020830184613208565b9392505050565b7f45524332393831526f79616c746965733a20546f6f2068696768000000000000600082015250565b6000614e23601a83613487565b9150614e2e82614ded565b602082019050919050565b60006020820190508181036000830152614e5281614e16565b9050919050565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b6000614eb5602983613487565b9150614ec082614e59565b604082019050919050565b60006020820190508181036000830152614ee481614ea8565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614f47602583613487565b9150614f5282614eeb565b604082019050919050565b60006020820190508181036000830152614f7681614f3a565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000614fd9602a83613487565b9150614fe482614f7d565b604082019050919050565b6000602082019050818103600083015261500881614fcc565b9050919050565b600060408201905081810360008301526150298185613c87565b9050818103602083015261503d8184613c87565b90509392505050565b600060a08201905061505b600083018861371d565b615068602083018761371d565b818103604083015261507a8186613c87565b9050818103606083015261508e8185613c87565b905081810360808301526150a28184614346565b90509695505050505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b600061510a602983613487565b9150615115826150ae565b604082019050919050565b60006020820190508181036000830152615139816150fd565b905091905056fea264697066735822122065a4cf88403c5059157877c9b7e00da0d8fe46efdf10acda5194f6b2c1e1bd6464736f6c634300080d0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x595F CODESIZE SUB DUP1 PUSH3 0x595F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x69F JUMP JUMPDEST PUSH20 0x3CC6CDDA760B79BAFA08DF41ECFA224F810DCEB6 PUSH1 0x1 DUP5 PUSH3 0x60 DUP2 PUSH3 0x303 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x81 PUSH3 0x75 PUSH3 0x31F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x327 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 PUSH14 0xAAEB6D7670E522A718067333CD4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH3 0x276 JUMPI DUP1 ISZERO PUSH3 0x13C JUMPI PUSH14 0xAAEB6D7670E522A718067333CD4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x7D3E3DBE ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x102 SWAP3 SWAP2 SWAP1 PUSH3 0x72B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x132 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH3 0x275 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x1F6 JUMPI PUSH14 0xAAEB6D7670E522A718067333CD4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA0AF2903 ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1BC SWAP3 SWAP2 SWAP1 PUSH3 0x72B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x1EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH3 0x274 JUMP JUMPDEST PUSH14 0xAAEB6D7670E522A718067333CD4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4420E486 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x23F SWAP2 SWAP1 PUSH3 0x758 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x25A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x26F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST JUMPDEST JUMPDEST POP POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x8 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP PUSH3 0x7D9 JUMP JUMPDEST DUP1 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x31B SWAP3 SWAP2 SWAP1 PUSH3 0x3ED JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x3FB SWAP1 PUSH3 0x7A4 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x41F JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x46B JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x43A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x46B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x46B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x46A JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x44D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x47A SWAP2 SWAP1 PUSH3 0x47E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x499 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x47F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x506 DUP3 PUSH3 0x4BB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x528 JUMPI PUSH3 0x527 PUSH3 0x4CC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x53D PUSH3 0x49D JUMP JUMPDEST SWAP1 POP PUSH3 0x54B DUP3 DUP3 PUSH3 0x4FB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x56E JUMPI PUSH3 0x56D PUSH3 0x4CC JUMP JUMPDEST JUMPDEST PUSH3 0x579 DUP3 PUSH3 0x4BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x5A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x589 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x5B6 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5D3 PUSH3 0x5CD DUP5 PUSH3 0x550 JUMP JUMPDEST PUSH3 0x531 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x5F2 JUMPI PUSH3 0x5F1 PUSH3 0x4B6 JUMP JUMPDEST JUMPDEST PUSH3 0x5FF DUP5 DUP3 DUP6 PUSH3 0x586 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x61F JUMPI PUSH3 0x61E PUSH3 0x4B1 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x631 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x5BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x667 DUP3 PUSH3 0x63A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x679 DUP2 PUSH3 0x65A JUMP JUMPDEST DUP2 EQ PUSH3 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x699 DUP2 PUSH3 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x6BB JUMPI PUSH3 0x6BA PUSH3 0x4A7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x6DC JUMPI PUSH3 0x6DB PUSH3 0x4AC JUMP JUMPDEST JUMPDEST PUSH3 0x6EA DUP7 DUP3 DUP8 ADD PUSH3 0x607 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH3 0x6FD DUP7 DUP3 DUP8 ADD PUSH3 0x688 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH3 0x710 DUP7 DUP3 DUP8 ADD PUSH3 0x688 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH3 0x725 DUP2 PUSH3 0x65A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0x742 PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x71A JUMP JUMPDEST PUSH3 0x751 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x71A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x76F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x71A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x7BD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x7D3 JUMPI PUSH3 0x7D2 PUSH3 0x775 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5176 DUP1 PUSH3 0x7E9 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 0x1E4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69B52017 GT PUSH2 0x10F JUMPI DUP1 PUSH4 0x9ABC8320 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE2C7F338 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE2C7F338 EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x582 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x5B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5CE JUMPI PUSH2 0x1E4 JUMP JUMPDEST DUP1 PUSH4 0x9ABC8320 EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0xAF877707 EQ PUSH2 0x52C JUMPI DUP1 PUSH4 0xD0414C9D EQ PUSH2 0x548 JUMPI PUSH2 0x1E4 JUMP JUMPDEST DUP1 PUSH4 0x82295A2D GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x82295A2D EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0x8D2BB093 EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4B8 JUMPI DUP1 PUSH4 0x98FAF29B EQ PUSH2 0x4D6 JUMPI PUSH2 0x1E4 JUMP JUMPDEST DUP1 PUSH4 0x69B52017 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0x6C52C3FB EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0x704FE710 EQ PUSH2 0x446 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x476 JUMPI PUSH2 0x1E4 JUMP JUMPDEST DUP1 PUSH4 0x1F320331 GT PUSH2 0x187 JUMPI DUP1 PUSH4 0x3A330022 GT PUSH2 0x156 JUMPI DUP1 PUSH4 0x3A330022 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x41F43434 EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0x58884432 EQ PUSH2 0x3F0 JUMPI PUSH2 0x1E4 JUMP JUMPDEST DUP1 PUSH4 0x1F320331 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x2A55205A EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0x337648B2 EQ PUSH2 0x36A JUMPI PUSH2 0x1E4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 GT PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x84E9E24 EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2CF JUMPI PUSH2 0x1E4 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x2FE5305 EQ PUSH2 0x249 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x31C8 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x210 SWAP2 SWAP1 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x233 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22E SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST PUSH2 0x6B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x32D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x263 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25E SWAP2 SWAP1 PUSH2 0x3433 JUMP JUMPDEST PUSH2 0x6C4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26D PUSH2 0x72A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27A SWAP2 SWAP1 PUSH2 0x3504 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x35C7 JUMP JUMPDEST PUSH2 0x763 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B4 SWAP2 SWAP1 PUSH2 0x3670 JUMP JUMPDEST PUSH2 0x93A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C6 SWAP2 SWAP1 PUSH2 0x3504 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2D7 PUSH2 0x978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x302 SWAP2 SWAP1 PUSH2 0x369D JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x337 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x332 SWAP2 SWAP1 PUSH2 0x36DD JUMP JUMPDEST PUSH2 0x9A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x345 SWAP3 SWAP2 SWAP1 PUSH2 0x372C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0x381D JUMP JUMPDEST PUSH2 0xA74 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x384 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37F SWAP2 SWAP1 PUSH2 0x39CD JUMP JUMPDEST PUSH2 0xAC7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39B SWAP2 SWAP1 PUSH2 0x3A45 JUMP JUMPDEST PUSH2 0xBE5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AA PUSH2 0xC31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0x3AD1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D5 SWAP2 SWAP1 PUSH2 0x3BAF JUMP JUMPDEST PUSH2 0xC43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E7 SWAP2 SWAP1 PUSH2 0x3CE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3F8 PUSH2 0xD5C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x405 SWAP2 SWAP1 PUSH2 0x3D07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x428 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x423 SWAP2 SWAP1 PUSH2 0x3D22 JUMP JUMPDEST PUSH2 0xD82 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x3A45 JUMP JUMPDEST PUSH2 0xFF5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x460 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45B SWAP2 SWAP1 PUSH2 0x3670 JUMP JUMPDEST PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x46D SWAP2 SWAP1 PUSH2 0x3504 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x47E PUSH2 0x10E1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x49A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x495 SWAP2 SWAP1 PUSH2 0x3E3B JUMP JUMPDEST PUSH2 0x10F5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0x3E97 JUMP JUMPDEST PUSH2 0x117B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4C0 PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CD SWAP2 SWAP1 PUSH2 0x3D07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x3F40 JUMP JUMPDEST PUSH2 0x1440 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4FA PUSH2 0x1513 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x507 SWAP2 SWAP1 PUSH2 0x3504 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x52A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x525 SWAP2 SWAP1 PUSH2 0x4015 JUMP JUMPDEST PUSH2 0x15A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x546 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x541 SWAP2 SWAP1 PUSH2 0x4055 JUMP JUMPDEST PUSH2 0x15BA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x550 PUSH2 0x1A9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55D SWAP2 SWAP1 PUSH2 0x3D07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x580 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x57B SWAP2 SWAP1 PUSH2 0x416E JUMP JUMPDEST PUSH2 0x1AC2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x59C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x597 SWAP2 SWAP1 PUSH2 0x41C1 JUMP JUMPDEST PUSH2 0x1ADA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A9 SWAP2 SWAP1 PUSH2 0x32D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0x4201 JUMP JUMPDEST PUSH2 0x1B6E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5E8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5E3 SWAP2 SWAP1 PUSH2 0x3A45 JUMP JUMPDEST PUSH2 0x1BC1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x65A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x651 SWAP1 PUSH2 0x430A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6BD DUP3 PUSH2 0x1C44 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x727 DUP2 PUSH2 0x1CBE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x566572736520576F726B732076302E332E300000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x782 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CD8 JUMP JUMPDEST ISZERO PUSH2 0x932 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x437F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x804 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x801 SWAP2 SWAP1 PUSH2 0x43EE JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x8A9 JUMPI PUSH2 0x810 PUSH2 0x4428 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 SUB PUSH2 0x86C JUMPI POP PUSH2 0x824 PUSH2 0x444A JUMP JUMPDEST DUP1 PUSH2 0x82F JUMPI POP PUSH2 0x86E JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x863 SWAP2 SWAP1 PUSH2 0x3504 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8A0 SWAP1 PUSH2 0x454C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x930 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x927 SWAP1 PUSH2 0x45DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x962 SWAP3 SWAP2 SWAP1 PUSH2 0x46FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH3 0xFFFFFF AND PUSH3 0xFFFFFF AND PUSH3 0xFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD SWAP3 POP PUSH2 0x2710 DUP2 PUSH1 0x20 ADD MLOAD PUSH3 0xFFFFFF AND DUP6 PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH2 0xA6A SWAP2 SWAP1 PUSH2 0x47D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xAB2 JUMPI PUSH2 0xAB1 CALLER PUSH2 0x1CFB JUMP JUMPDEST JUMPDEST PUSH2 0xABF DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1DF8 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0xB65 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB5C SWAP1 PUSH2 0x4856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0xBE0 JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xB84 JUMPI PUSH2 0xB83 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xBA3 JUMPI PUSH2 0xBA2 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBCC SWAP3 SWAP2 SWAP1 PUSH2 0x307D JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0xBD8 SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB68 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xBED PUSH2 0x1E99 JUMP JUMPDEST DUP1 PUSH1 0x8 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 PUSH14 0xAAEB6D7670E522A718067333CD4E DUP2 JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xC89 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC80 SWAP1 PUSH2 0x495F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCA6 JUMPI PUSH2 0xCA5 PUSH2 0x3308 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCD4 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xD51 JUMPI PUSH2 0xD21 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCF9 JUMPI PUSH2 0xCF8 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xD14 JUMPI PUSH2 0xD13 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x5EA JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xD34 JUMPI PUSH2 0xD33 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH2 0xD4A SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP1 POP PUSH2 0xCDA JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 MLOAD EQ DUP1 ISZERO PUSH2 0xDEE JUMPI POP DUP1 MLOAD DUP6 MLOAD EQ JUMPDEST PUSH2 0xE2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE24 SWAP1 PUSH2 0x4856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE48 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1F17 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0xF40 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE69 JUMPI PUSH2 0xE68 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0xED1 JUMPI PUSH2 0xED0 DUP7 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE8D JUMPI PUSH2 0xE8C PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xEA8 JUMPI PUSH2 0xEA7 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xEC3 JUMPI PUSH2 0xEC2 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2177 JUMP JUMPDEST JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xEE4 JUMPI PUSH2 0xEE3 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x0 DUP9 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xF03 JUMPI PUSH2 0xF02 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xF2C SWAP3 SWAP2 SWAP1 PUSH2 0x307D JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0xF38 SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xE4B JUMP JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0xFD2 JUMPI PUSH1 0x0 JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0xFBE JUMPI DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xF71 JUMPI PUSH2 0xF70 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xF8C JUMPI PUSH2 0xF8B PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xF9E SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST DUP4 PUSH2 0xFA9 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP DUP1 DUP1 PUSH2 0xFB6 SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF55 JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0xFCA SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF49 JUMP JUMPDEST POP DUP1 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xFE5 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFD PUSH2 0x1E99 JUMP JUMPDEST DUP1 PUSH1 0x7 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 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x1060 SWAP1 PUSH2 0x462D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x108C SWAP1 PUSH2 0x462D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x10D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x10D9 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 0x10BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x10E9 PUSH2 0x1E99 JUMP JUMPDEST PUSH2 0x10F3 PUSH1 0x0 PUSH2 0x2273 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x114F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1176 SWAP3 SWAP2 SWAP1 PUSH2 0x307D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1244 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123B SWAP1 PUSH2 0x4A21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x12A4 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x12BE SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x12EC SWAP3 SWAP2 SWAP1 PUSH2 0x307D JUMP JUMPDEST POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1302 JUMPI PUSH2 0x1301 DUP5 DUP4 DUP4 PUSH2 0x2177 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x130C PUSH2 0x2339 JUMP JUMPDEST SWAP1 POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP9 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1386 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP9 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1405 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x149A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14B5 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2341 JUMP JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x14CA JUMPI PUSH2 0x14C9 DUP6 DUP4 DUP4 PUSH2 0x2177 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x14F1 SWAP3 SWAP2 SWAP1 PUSH2 0x307D JUMP JUMPDEST POP DUP4 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1504 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x1520 SWAP1 PUSH2 0x462D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x154C SWAP1 PUSH2 0x462D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1599 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x156E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1599 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 0x157C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST DUP2 PUSH2 0x15AB DUP2 PUSH2 0x1CFB JUMP JUMPDEST PUSH2 0x15B5 DUP4 DUP4 PUSH2 0x24F1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP5 MLOAD EQ DUP1 ISZERO PUSH2 0x1626 JUMPI POP DUP1 MLOAD DUP5 MLOAD EQ JUMPDEST PUSH2 0x1665 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x165C SWAP1 PUSH2 0x4856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x166F PUSH2 0x2339 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0x1A78 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP9 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1695 JUMPI PUSH2 0x1694 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F7 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1737 DUP3 PUSH1 0x0 DUP11 DUP10 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1718 JUMPI PUSH2 0x1717 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x763 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x174C JUMPI PUSH2 0x174B PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x17B4 JUMPI PUSH2 0x17B3 DUP7 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1770 JUMPI PUSH2 0x176F PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x178B JUMPI PUSH2 0x178A PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x17A6 JUMPI PUSH2 0x17A5 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2177 JUMP JUMPDEST JUMPDEST DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x17C7 JUMPI PUSH2 0x17C6 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x0 DUP9 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x17E6 JUMPI PUSH2 0x17E5 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x180F SWAP3 SWAP2 SWAP1 PUSH2 0x307D JUMP JUMPDEST POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x183B JUMPI PUSH2 0x183A PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x18FD JUMPI DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP10 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x18F0 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1A65 JUMP JUMPDEST DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1910 JUMPI PUSH2 0x190F PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP10 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1991 JUMPI PUSH2 0x1990 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x19A9 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19DB JUMPI PUSH2 0x19DA PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP10 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1A44 JUMPI PUSH2 0x1A43 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1A5C SWAP3 SWAP2 SWAP1 PUSH2 0x4A7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST DUP1 DUP1 PUSH2 0x1A70 SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1674 JUMP JUMPDEST POP DUP5 MLOAD PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1A8C SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x1ACA PUSH2 0x1E99 JUMP JUMPDEST PUSH2 0x1AD5 DUP4 DUP4 DUP4 PUSH2 0x2177 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1BAC JUMPI PUSH2 0x1BAB CALLER PUSH2 0x1CFB JUMP JUMPDEST JUMPDEST PUSH2 0x1BB9 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2507 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1BC9 PUSH2 0x1E99 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1C38 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C2F SWAP1 PUSH2 0x4B17 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C41 DUP2 PUSH2 0x2273 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1CB7 JUMPI POP PUSH2 0x1CB6 DUP3 PUSH2 0x25A8 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1CD4 SWAP3 SWAP2 SWAP1 PUSH2 0x307D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH14 0xAAEB6D7670E522A718067333CD4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1DF5 JUMPI PUSH14 0xAAEB6D7670E522A718067333CD4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC6171134 ADDRESS DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D72 SWAP3 SWAP2 SWAP1 PUSH2 0x4B37 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DB3 SWAP2 SWAP1 PUSH2 0x4B75 JUMP JUMPDEST PUSH2 0x1DF4 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xEDE71DCC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DEB SWAP2 SWAP1 PUSH2 0x3D07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x1E00 PUSH2 0x2339 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1E46 JUMPI POP PUSH2 0x1E45 DUP6 PUSH2 0x1E40 PUSH2 0x2339 JUMP JUMPDEST PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST PUSH2 0x1E85 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E7C SWAP1 PUSH2 0x4C14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1E92 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x268A JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1EA1 PUSH2 0x2339 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1EBF PUSH2 0x1416 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F15 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F0C SWAP1 PUSH2 0x4C80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1F86 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F7D SWAP1 PUSH2 0x4D12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1FCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FC1 SWAP1 PUSH2 0x4DA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FD4 PUSH2 0x2339 JUMP JUMPDEST SWAP1 POP PUSH2 0x1FE5 DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x29AB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x2151 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x2004 JUMPI PUSH2 0x2003 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 DUP1 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x2022 JUMPI PUSH2 0x2021 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2084 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP9 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x2105 JUMPI PUSH2 0x2104 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x2120 JUMPI PUSH2 0x211F PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x2136 SWAP3 SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 DUP1 PUSH2 0x2149 SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1FE8 JUMP JUMPDEST POP PUSH2 0x2161 DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x29B3 JUMP JUMPDEST PUSH2 0x2170 DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x29BB JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2710 DUP2 GT ISZERO PUSH2 0x21BC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21B3 SWAP1 PUSH2 0x4E39 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH3 0xFFFFFF AND DUP2 MSTORE POP PUSH1 0x5 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH3 0xFFFFFF MUL NOT AND SWAP1 DUP4 PUSH3 0xFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x23B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23A7 SWAP1 PUSH2 0x4D12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x23BA PUSH2 0x2339 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x23C7 DUP6 PUSH2 0x2B92 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x23D4 DUP6 PUSH2 0x2B92 JUMP JUMPDEST SWAP1 POP PUSH2 0x23E5 DUP4 PUSH1 0x0 DUP10 DUP6 DUP6 DUP10 PUSH2 0x29AB JUMP JUMPDEST DUP5 PUSH1 0x0 DUP1 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2444 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x24C2 SWAP3 SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x24D9 DUP4 PUSH1 0x0 DUP10 DUP6 DUP6 DUP10 PUSH2 0x29B3 JUMP JUMPDEST PUSH2 0x24E8 DUP4 PUSH1 0x0 DUP10 DUP10 DUP10 DUP10 PUSH2 0x763 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2503 PUSH2 0x24FC PUSH2 0x2339 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x2C0C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x250F PUSH2 0x2339 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2555 JUMPI POP PUSH2 0x2554 DUP6 PUSH2 0x254F PUSH2 0x2339 JUMP JUMPDEST PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST PUSH2 0x2594 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x258B SWAP1 PUSH2 0x4ECB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x25A1 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2D78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2673 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x2683 JUMPI POP PUSH2 0x2682 DUP3 PUSH2 0x3013 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x26CE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C5 SWAP1 PUSH2 0x4DA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x273D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2734 SWAP1 PUSH2 0x4F5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2747 PUSH2 0x2339 JUMP JUMPDEST SWAP1 POP PUSH2 0x2757 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x29AB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x2908 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2778 JUMPI PUSH2 0x2777 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x2797 JUMPI PUSH2 0x2796 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x2838 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x282F SWAP1 PUSH2 0x4FEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x28ED SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP DUP1 PUSH2 0x2901 SWAP1 PUSH2 0x48A5 JUMP JUMPDEST SWAP1 POP PUSH2 0x275A JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x297F SWAP3 SWAP2 SWAP1 PUSH2 0x500F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2995 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x29B3 JUMP JUMPDEST PUSH2 0x29A3 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x29BB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x29DA DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CD8 JUMP JUMPDEST ISZERO PUSH2 0x2B8A JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A20 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5046 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2A5C JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A59 SWAP2 SWAP1 PUSH2 0x43EE JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2B01 JUMPI PUSH2 0x2A68 PUSH2 0x4428 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 SUB PUSH2 0x2AC4 JUMPI POP PUSH2 0x2A7C PUSH2 0x444A JUMP JUMPDEST DUP1 PUSH2 0x2A87 JUMPI POP PUSH2 0x2AC6 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2ABB SWAP2 SWAP1 PUSH2 0x3504 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AF8 SWAP1 PUSH2 0x454C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x2B88 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B7F SWAP1 PUSH2 0x45DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BB1 JUMPI PUSH2 0x2BB0 PUSH2 0x3308 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2BDF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2BF7 JUMPI PUSH2 0x2BF6 PUSH2 0x4876 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2C7A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C71 SWAP1 PUSH2 0x5120 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2D6B SWAP2 SWAP1 PUSH2 0x32D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DDE SWAP1 PUSH2 0x4F5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2DF1 PUSH2 0x2339 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2DFE DUP6 PUSH2 0x2B92 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E0B DUP6 PUSH2 0x2B92 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E1B DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x29AB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP6 DUP2 LT ISZERO PUSH2 0x2EB2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EA9 SWAP1 PUSH2 0x4FEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP6 DUP2 SUB PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP6 PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2F67 SWAP2 SWAP1 PUSH2 0x497F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x2FE4 SWAP3 SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2FFA DUP5 DUP11 DUP11 DUP7 DUP7 DUP11 PUSH2 0x29B3 JUMP JUMPDEST PUSH2 0x3008 DUP5 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x763 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x3089 SWAP1 PUSH2 0x462D JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x30AB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x30F2 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x30C4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x30F2 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x30F2 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x30F1 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x30D6 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x30FF SWAP2 SWAP1 PUSH2 0x3103 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x311C JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3104 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x315F DUP3 PUSH2 0x3134 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x316F DUP2 PUSH2 0x3154 JUMP JUMPDEST DUP2 EQ PUSH2 0x317A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x318C DUP2 PUSH2 0x3166 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x31A5 DUP2 PUSH2 0x3192 JUMP JUMPDEST DUP2 EQ PUSH2 0x31B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x31C2 DUP2 PUSH2 0x319C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31DF JUMPI PUSH2 0x31DE PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x31ED DUP6 DUP3 DUP7 ADD PUSH2 0x317D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x31FE DUP6 DUP3 DUP7 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3211 DUP2 PUSH2 0x3192 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x322C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3208 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3267 DUP2 PUSH2 0x3232 JUMP JUMPDEST DUP2 EQ PUSH2 0x3272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3284 DUP2 PUSH2 0x325E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32A0 JUMPI PUSH2 0x329F PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x32AE DUP5 DUP3 DUP6 ADD PUSH2 0x3275 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x32CC DUP2 PUSH2 0x32B7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x32E7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x32C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x3340 DUP3 PUSH2 0x32F7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x335F JUMPI PUSH2 0x335E PUSH2 0x3308 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3372 PUSH2 0x3120 JUMP JUMPDEST SWAP1 POP PUSH2 0x337E DUP3 DUP3 PUSH2 0x3337 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x339E JUMPI PUSH2 0x339D PUSH2 0x3308 JUMP JUMPDEST JUMPDEST PUSH2 0x33A7 DUP3 PUSH2 0x32F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33D6 PUSH2 0x33D1 DUP5 PUSH2 0x3383 JUMP JUMPDEST PUSH2 0x3368 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x33F2 JUMPI PUSH2 0x33F1 PUSH2 0x32F2 JUMP JUMPDEST JUMPDEST PUSH2 0x33FD DUP5 DUP3 DUP6 PUSH2 0x33B4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x341A JUMPI PUSH2 0x3419 PUSH2 0x32ED JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x342A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x33C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3449 JUMPI PUSH2 0x3448 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3467 JUMPI PUSH2 0x3466 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3473 DUP5 DUP3 DUP6 ADD PUSH2 0x3405 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 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 0x34B6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x349B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x34C5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D6 DUP3 PUSH2 0x347C JUMP JUMPDEST PUSH2 0x34E0 DUP2 DUP6 PUSH2 0x3487 JUMP JUMPDEST SWAP4 POP PUSH2 0x34F0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3498 JUMP JUMPDEST PUSH2 0x34F9 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x351E DUP2 DUP5 PUSH2 0x34CB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3541 JUMPI PUSH2 0x3540 PUSH2 0x3308 JUMP JUMPDEST JUMPDEST PUSH2 0x354A DUP3 PUSH2 0x32F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356A PUSH2 0x3565 DUP5 PUSH2 0x3526 JUMP JUMPDEST PUSH2 0x3368 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x3586 JUMPI PUSH2 0x3585 PUSH2 0x32F2 JUMP JUMPDEST JUMPDEST PUSH2 0x3591 DUP5 DUP3 DUP6 PUSH2 0x33B4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x35AE JUMPI PUSH2 0x35AD PUSH2 0x32ED JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x35BE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3557 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x35E4 JUMPI PUSH2 0x35E3 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35F2 DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x3603 DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x3614 DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x3625 DUP10 DUP3 DUP11 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x3636 DUP10 DUP3 DUP11 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3657 JUMPI PUSH2 0x3656 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3663 DUP10 DUP3 DUP11 ADD PUSH2 0x3599 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3686 JUMPI PUSH2 0x3685 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3694 DUP5 DUP3 DUP6 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36B4 JUMPI PUSH2 0x36B3 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36C2 DUP6 DUP3 DUP7 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x36D3 DUP6 DUP3 DUP7 ADD PUSH2 0x317D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36F4 JUMPI PUSH2 0x36F3 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3702 DUP6 DUP3 DUP7 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3713 DUP6 DUP3 DUP7 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3726 DUP2 PUSH2 0x3154 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3741 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x371D JUMP JUMPDEST PUSH2 0x374E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3208 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3770 JUMPI PUSH2 0x376F PUSH2 0x3308 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3799 PUSH2 0x3794 DUP5 PUSH2 0x3755 JUMP JUMPDEST PUSH2 0x3368 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x37BC JUMPI PUSH2 0x37BB PUSH2 0x3781 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x37E5 JUMPI DUP1 PUSH2 0x37D1 DUP9 DUP3 PUSH2 0x31B3 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x37BE JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3804 JUMPI PUSH2 0x3803 PUSH2 0x32ED JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3814 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3786 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3839 JUMPI PUSH2 0x3838 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3847 DUP9 DUP3 DUP10 ADD PUSH2 0x317D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x3858 DUP9 DUP3 DUP10 ADD PUSH2 0x317D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3879 JUMPI PUSH2 0x3878 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3885 DUP9 DUP3 DUP10 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38A6 JUMPI PUSH2 0x38A5 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x38B2 DUP9 DUP3 DUP10 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38D3 JUMPI PUSH2 0x38D2 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x38DF DUP9 DUP3 DUP10 ADD PUSH2 0x3599 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3907 JUMPI PUSH2 0x3906 PUSH2 0x3308 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x392B PUSH2 0x3926 DUP5 PUSH2 0x38EC JUMP JUMPDEST PUSH2 0x3368 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x394E JUMPI PUSH2 0x394D PUSH2 0x3781 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3995 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3973 JUMPI PUSH2 0x3972 PUSH2 0x32ED JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x3980 DUP10 DUP3 PUSH2 0x3405 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3950 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x39B4 JUMPI PUSH2 0x39B3 PUSH2 0x32ED JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x39C4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3918 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39E4 JUMPI PUSH2 0x39E3 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A02 JUMPI PUSH2 0x3A01 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3A0E DUP6 DUP3 DUP7 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A2F JUMPI PUSH2 0x3A2E PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3A3B DUP6 DUP3 DUP7 ADD PUSH2 0x399F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A5B JUMPI PUSH2 0x3A5A PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3A69 DUP5 DUP3 DUP6 ADD PUSH2 0x317D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A97 PUSH2 0x3A92 PUSH2 0x3A8D DUP5 PUSH2 0x3134 JUMP JUMPDEST PUSH2 0x3A72 JUMP JUMPDEST PUSH2 0x3134 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA9 DUP3 PUSH2 0x3A7C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ABB DUP3 PUSH2 0x3A9E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3ACB DUP2 PUSH2 0x3AB0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3AE6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3AC2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3B07 JUMPI PUSH2 0x3B06 PUSH2 0x3308 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B2B PUSH2 0x3B26 DUP5 PUSH2 0x3AEC JUMP JUMPDEST PUSH2 0x3368 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x3B4E JUMPI PUSH2 0x3B4D PUSH2 0x3781 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3B77 JUMPI DUP1 PUSH2 0x3B63 DUP9 DUP3 PUSH2 0x317D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3B50 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B96 JUMPI PUSH2 0x3B95 PUSH2 0x32ED JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3BA6 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3B18 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3BC6 JUMPI PUSH2 0x3BC5 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BE4 JUMPI PUSH2 0x3BE3 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3BF0 DUP6 DUP3 DUP7 ADD PUSH2 0x3B81 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C11 JUMPI PUSH2 0x3C10 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3C1D DUP6 DUP3 DUP7 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3C5C DUP2 PUSH2 0x3192 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C6E DUP4 DUP4 PUSH2 0x3C53 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C92 DUP3 PUSH2 0x3C27 JUMP JUMPDEST PUSH2 0x3C9C DUP2 DUP6 PUSH2 0x3C32 JUMP JUMPDEST SWAP4 POP PUSH2 0x3CA7 DUP4 PUSH2 0x3C43 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3CD8 JUMPI DUP2 MLOAD PUSH2 0x3CBF DUP9 DUP3 PUSH2 0x3C62 JUMP JUMPDEST SWAP8 POP PUSH2 0x3CCA DUP4 PUSH2 0x3C7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3CAB JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3CFF DUP2 DUP5 PUSH2 0x3C87 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3D1C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x371D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3D3F JUMPI PUSH2 0x3D3E PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3D4D DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3D6E JUMPI PUSH2 0x3D6D PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3D7A DUP10 DUP3 DUP11 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3D9B JUMPI PUSH2 0x3D9A PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3DA7 DUP10 DUP3 DUP11 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3DC8 JUMPI PUSH2 0x3DC7 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3DD4 DUP10 DUP3 DUP11 ADD PUSH2 0x399F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3DF5 JUMPI PUSH2 0x3DF4 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3E01 DUP10 DUP3 DUP11 ADD PUSH2 0x3B81 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E22 JUMPI PUSH2 0x3E21 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3E2E DUP10 DUP3 DUP11 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E52 JUMPI PUSH2 0x3E51 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3E60 DUP6 DUP3 DUP7 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E81 JUMPI PUSH2 0x3E80 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3E8D DUP6 DUP3 DUP7 ADD PUSH2 0x3405 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3EB4 JUMPI PUSH2 0x3EB3 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3EC2 DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x3ED3 DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x3EE4 DUP10 DUP3 DUP11 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F05 JUMPI PUSH2 0x3F04 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3F11 DUP10 DUP3 DUP11 ADD PUSH2 0x3405 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x3F22 DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x3F33 DUP10 DUP3 DUP11 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3F5D JUMPI PUSH2 0x3F5C PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3F6B DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x3F7C DUP10 DUP3 DUP11 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x3F8D DUP10 DUP3 DUP11 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FAE JUMPI PUSH2 0x3FAD PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x3FBA DUP10 DUP3 DUP11 ADD PUSH2 0x3405 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x3FCB DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x3FDC DUP10 DUP3 DUP11 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x3FF2 DUP2 PUSH2 0x32B7 JUMP JUMPDEST DUP2 EQ PUSH2 0x3FFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x400F DUP2 PUSH2 0x3FE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x402C JUMPI PUSH2 0x402B PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x403A DUP6 DUP3 DUP7 ADD PUSH2 0x317D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x404B DUP6 DUP3 DUP7 ADD PUSH2 0x4000 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x4072 JUMPI PUSH2 0x4071 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4080 DUP10 DUP3 DUP11 ADD PUSH2 0x317D JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x40A1 JUMPI PUSH2 0x40A0 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x40AD DUP10 DUP3 DUP11 ADD PUSH2 0x3B81 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x40CE JUMPI PUSH2 0x40CD PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x40DA DUP10 DUP3 DUP11 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x40FB JUMPI PUSH2 0x40FA PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x4107 DUP10 DUP3 DUP11 ADD PUSH2 0x399F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4128 JUMPI PUSH2 0x4127 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x4134 DUP10 DUP3 DUP11 ADD PUSH2 0x3B81 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4155 JUMPI PUSH2 0x4154 PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x4161 DUP10 DUP3 DUP11 ADD PUSH2 0x37EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4187 JUMPI PUSH2 0x4186 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4195 DUP7 DUP3 DUP8 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x41A6 DUP7 DUP3 DUP8 ADD PUSH2 0x317D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x41B7 DUP7 DUP3 DUP8 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x41D8 JUMPI PUSH2 0x41D7 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x41E6 DUP6 DUP3 DUP7 ADD PUSH2 0x317D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x41F7 DUP6 DUP3 DUP7 ADD PUSH2 0x317D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x421D JUMPI PUSH2 0x421C PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x422B DUP9 DUP3 DUP10 ADD PUSH2 0x317D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x423C DUP9 DUP3 DUP10 ADD PUSH2 0x317D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x424D DUP9 DUP3 DUP10 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x425E DUP9 DUP3 DUP10 ADD PUSH2 0x31B3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x427F JUMPI PUSH2 0x427E PUSH2 0x312F JUMP JUMPDEST JUMPDEST PUSH2 0x428B DUP9 DUP3 DUP10 ADD PUSH2 0x3599 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42F4 PUSH1 0x2B DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x42FF DUP3 PUSH2 0x4298 JUMP JUMPDEST PUSH1 0x40 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 0x4323 DUP2 PUSH2 0x42E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 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 PUSH2 0x4351 DUP3 PUSH2 0x432A JUMP JUMPDEST PUSH2 0x435B DUP2 DUP6 PUSH2 0x4335 JUMP JUMPDEST SWAP4 POP PUSH2 0x436B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3498 JUMP JUMPDEST PUSH2 0x4374 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x4394 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x371D JUMP JUMPDEST PUSH2 0x43A1 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x371D JUMP JUMPDEST PUSH2 0x43AE PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x3208 JUMP JUMPDEST PUSH2 0x43BB PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x3208 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x43CD DUP2 DUP5 PUSH2 0x4346 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x43E8 DUP2 PUSH2 0x325E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4404 JUMPI PUSH2 0x4403 PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4412 DUP5 DUP3 DUP6 ADD PUSH2 0x43D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 RETURNDATASIZE GT ISZERO PUSH2 0x4447 JUMPI PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x4444 PUSH1 0x0 MLOAD PUSH2 0x441B JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT PUSH2 0x44D7 JUMPI PUSH2 0x445C PUSH2 0x3120 JUMP JUMPDEST PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4484 JUMPI POP POP PUSH2 0x44D7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44A2 JUMPI POP POP POP POP PUSH2 0x44D7 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD PUSH1 0x4 RETURNDATASIZE SUB DUP6 ADD DUP2 GT ISZERO PUSH2 0x44BF JUMPI POP POP POP POP POP PUSH2 0x44D7 JUMP JUMPDEST PUSH2 0x44CE DUP3 PUSH1 0x20 ADD DUP6 ADD DUP7 PUSH2 0x3337 JUMP JUMPDEST DUP3 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4536 PUSH1 0x34 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4541 DUP3 PUSH2 0x44DA JUMP JUMPDEST PUSH1 0x40 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 0x4565 DUP2 PUSH2 0x4529 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45C8 PUSH1 0x28 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x45D3 DUP3 PUSH2 0x456C JUMP JUMPDEST PUSH1 0x40 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 0x45F7 DUP2 PUSH2 0x45BB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x4645 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4658 JUMPI PUSH2 0x4657 PUSH2 0x45FE JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x468B DUP2 PUSH2 0x462D JUMP JUMPDEST PUSH2 0x4695 DUP2 DUP7 PUSH2 0x465E JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x46B0 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x46C1 JUMPI PUSH2 0x46F4 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 DUP7 ADD SWAP4 POP PUSH2 0x46F4 JUMP JUMPDEST PUSH2 0x46CA DUP6 PUSH2 0x4669 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x46EC JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x46CD JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4709 DUP3 DUP6 PUSH2 0x467E JUMP JUMPDEST SWAP2 POP PUSH2 0x4715 DUP3 DUP5 PUSH2 0x467E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x475B DUP3 PUSH2 0x3192 JUMP JUMPDEST SWAP2 POP PUSH2 0x4766 DUP4 PUSH2 0x3192 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x479F JUMPI PUSH2 0x479E PUSH2 0x4721 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x47E4 DUP3 PUSH2 0x3192 JUMP JUMPDEST SWAP2 POP PUSH2 0x47EF DUP4 PUSH2 0x3192 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x47FF JUMPI PUSH2 0x47FE PUSH2 0x47AA JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x455243313135353A20417272617973206C656E677468206D69736D6174636800 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4840 PUSH1 0x1F DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x484B DUP3 PUSH2 0x480A 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 0x486F DUP2 PUSH2 0x4833 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x48B0 DUP3 PUSH2 0x3192 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x48E2 JUMPI PUSH2 0x48E1 PUSH2 0x4721 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4949 PUSH1 0x29 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4954 DUP3 PUSH2 0x48ED JUMP JUMPDEST PUSH1 0x40 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 0x4978 DUP2 PUSH2 0x493C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498A DUP3 PUSH2 0x3192 JUMP JUMPDEST SWAP2 POP PUSH2 0x4995 DUP4 PUSH2 0x3192 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x49CA JUMPI PUSH2 0x49C9 PUSH2 0x4721 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6D696E7420746F20746865207A65726F20616464726573730000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A0B PUSH1 0x18 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4A16 DUP3 PUSH2 0x49D5 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 0x4A3A DUP2 PUSH2 0x49FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A66 PUSH2 0x4A61 PUSH2 0x4A5C DUP5 PUSH2 0x4A41 JUMP JUMPDEST PUSH2 0x3A72 JUMP JUMPDEST PUSH2 0x3192 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4A76 DUP2 PUSH2 0x4A4B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4A91 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3208 JUMP JUMPDEST PUSH2 0x4A9E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4A6D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B01 PUSH1 0x26 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4B0C DUP3 PUSH2 0x4AA5 JUMP JUMPDEST PUSH1 0x40 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 0x4B30 DUP2 PUSH2 0x4AF4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4B4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x371D JUMP JUMPDEST PUSH2 0x4B59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x371D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4B6F DUP2 PUSH2 0x3FE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B8B JUMPI PUSH2 0x4B8A PUSH2 0x312A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4B99 DUP5 DUP3 DUP6 ADD PUSH2 0x4B60 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4BFE PUSH1 0x32 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4C09 DUP3 PUSH2 0x4BA2 JUMP JUMPDEST PUSH1 0x40 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 0x4C2D DUP2 PUSH2 0x4BF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C6A PUSH1 0x20 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4C75 DUP3 PUSH2 0x4C34 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 0x4C99 DUP2 PUSH2 0x4C5D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A206D696E7420746F20746865207A65726F20616464726573 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CFC PUSH1 0x21 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4D07 DUP3 PUSH2 0x4CA0 JUMP JUMPDEST PUSH1 0x40 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 0x4D2B DUP2 PUSH2 0x4CEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D8E PUSH1 0x28 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4D99 DUP3 PUSH2 0x4D32 JUMP JUMPDEST PUSH1 0x40 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 0x4DBD DUP2 PUSH2 0x4D81 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4DD9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3208 JUMP JUMPDEST PUSH2 0x4DE6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3208 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x45524332393831526F79616C746965733A20546F6F2068696768000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E23 PUSH1 0x1A DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4E2E DUP3 PUSH2 0x4DED 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 0x4E52 DUP2 PUSH2 0x4E16 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EB5 PUSH1 0x29 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4EC0 DUP3 PUSH2 0x4E59 JUMP JUMPDEST PUSH1 0x40 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 0x4EE4 DUP2 PUSH2 0x4EA8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F47 PUSH1 0x25 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4F52 DUP3 PUSH2 0x4EEB JUMP JUMPDEST PUSH1 0x40 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 0x4F76 DUP2 PUSH2 0x4F3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72207472616E7366657200000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4FD9 PUSH1 0x2A DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x4FE4 DUP3 PUSH2 0x4F7D JUMP JUMPDEST PUSH1 0x40 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 0x5008 DUP2 PUSH2 0x4FCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5029 DUP2 DUP6 PUSH2 0x3C87 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x503D DUP2 DUP5 PUSH2 0x3C87 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x505B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x371D JUMP JUMPDEST PUSH2 0x5068 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x371D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x507A DUP2 DUP7 PUSH2 0x3C87 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x508E DUP2 DUP6 PUSH2 0x3C87 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x50A2 DUP2 DUP5 PUSH2 0x4346 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x510A PUSH1 0x29 DUP4 PUSH2 0x3487 JUMP JUMPDEST SWAP2 POP PUSH2 0x5115 DUP3 PUSH2 0x50AE JUMP JUMPDEST PUSH1 0x40 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 0x5139 DUP2 PUSH2 0x50FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH6 0xA4CF88403C50 MSIZE ISZERO PUSH25 0x77C9B7E00DA0D8FE46EFDF10ACDA5194F6B2C1E1BD6464736F PUSH13 0x634300080D0033000000000000 ",
"sourceMap": "267:8983:13:-:0;;;381:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;383:42:2;486:4;493::13;1173:13:3;1181:4;1173:7;;;:13;;:::i;:::-;1131:62;929:32:16;948:12;:10;;;:12;;:::i;:::-;929:18;;;:32;;:::i;:::-;1296:1:15;836:42;1248:45;;;:49;1244:537;;;1317:9;1313:458;;;836:42;1346:45;;;1400:4;1407:30;1346:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1313:458;;;1523:1;1481:44;;:30;:44;;;1477:280;;836:42;1549:47;;;1605:4;1612:30;1549:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:280;;;836:42;1690:33;;;1732:4;1690:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:280;1313:458;1244:537;886:901;;526:7:13::1;509:14;;:24;;;;;;;;;;;;;;;;;;560:15;543:14;;:32;;;;;;;;;;;;;;;;;;381:201:::0;;;267:8983;;8698:89:3;8774:6;8764:7;:16;;;;;;;;;;;;:::i;:::-;;8698:89;:::o;640:96:1:-;693:7;719:10;712:17;;640:96;:::o;2426:187:16:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;267:8983:13:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:307::-;1678:1;1688:113;1702:6;1699:1;1696:13;1688:113;;;1787:1;1782:3;1778:11;1772:18;1768:1;1763:3;1759:11;1752:39;1724:2;1721:1;1717:10;1712:15;;1688:113;;;1819:6;1816:1;1813:13;1810:101;;;1899:1;1890:6;1885:3;1881:16;1874:27;1810:101;1659:258;1610:307;;;:::o;1923:421::-;2012:5;2037:66;2053:49;2095:6;2053:49;:::i;:::-;2037:66;:::i;:::-;2028:75;;2126:6;2119:5;2112:21;2164:4;2157:5;2153:16;2202:3;2193:6;2188:3;2184:16;2181:25;2178:112;;;2209:79;;:::i;:::-;2178:112;2299:39;2331:6;2326:3;2321;2299:39;:::i;:::-;2018:326;1923:421;;;;;:::o;2364:355::-;2431:5;2480:3;2473:4;2465:6;2461:17;2457:27;2447:122;;2488:79;;:::i;:::-;2447:122;2598:6;2592:13;2623:90;2709:3;2701:6;2694:4;2686:6;2682:17;2623:90;:::i;:::-;2614:99;;2437:282;2364:355;;;;:::o;2725:126::-;2762:7;2802:42;2795:5;2791:54;2780:65;;2725:126;;;:::o;2857:96::-;2894:7;2923:24;2941:5;2923:24;:::i;:::-;2912:35;;2857:96;;;:::o;2959:122::-;3032:24;3050:5;3032:24;:::i;:::-;3025:5;3022:35;3012:63;;3071:1;3068;3061:12;3012:63;2959:122;:::o;3087:143::-;3144:5;3175:6;3169:13;3160:22;;3191:33;3218:5;3191:33;:::i;:::-;3087:143;;;;:::o;3236:836::-;3334:6;3342;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3546:1;3535:9;3531:17;3525:24;3576:18;3568:6;3565:30;3562:117;;;3598:79;;:::i;:::-;3562:117;3703:74;3769:7;3760:6;3749:9;3745:22;3703:74;:::i;:::-;3693:84;;3496:291;3826:2;3852:64;3908:7;3899:6;3888:9;3884:22;3852:64;:::i;:::-;3842:74;;3797:129;3965:2;3991:64;4047:7;4038:6;4027:9;4023:22;3991:64;:::i;:::-;3981:74;;3936:129;3236:836;;;;;:::o;4078:118::-;4165:24;4183:5;4165:24;:::i;:::-;4160:3;4153:37;4078:118;;:::o;4202:332::-;4323:4;4361:2;4350:9;4346:18;4338:26;;4374:71;4442:1;4431:9;4427:17;4418:6;4374:71;:::i;:::-;4455:72;4523:2;4512:9;4508:18;4499:6;4455:72;:::i;:::-;4202:332;;;;;:::o;4540:222::-;4633:4;4671:2;4660:9;4656:18;4648:26;;4684:71;4752:1;4741:9;4737:17;4728:6;4684:71;:::i;:::-;4540:222;;;;:::o;4768:180::-;4816:77;4813:1;4806:88;4913:4;4910:1;4903:15;4937:4;4934:1;4927:15;4954:320;4998:6;5035:1;5029:4;5025:12;5015:22;;5082:1;5076:4;5072:12;5103:18;5093:81;;5159:4;5151:6;5147:17;5137:27;;5093:81;5221:2;5213:6;5210:14;5190:18;5187:38;5184:84;;5240:18;;:::i;:::-;5184:84;5005:269;4954:320;;;:::o;267:8983:13:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@OPERATOR_FILTER_REGISTRY_3517": {
"entryPoint": 3121,
"id": 3517,
"parameterSlots": 0,
"returnSlots": 0
},
"@_afterTokenTransfer_1229": {
"entryPoint": 10675,
"id": 1229,
"parameterSlots": 6,
"returnSlots": 0
},
"@_asSingletonArray_1385": {
"entryPoint": 11154,
"id": 1385,
"parameterSlots": 1,
"returnSlots": 1
},
"@_beforeTokenTransfer_1210": {
"entryPoint": 10667,
"id": 1210,
"parameterSlots": 6,
"returnSlots": 0
},
"@_checkFilterOperator_3635": {
"entryPoint": 7419,
"id": 3635,
"parameterSlots": 1,
"returnSlots": 0
},
"@_checkOwner_3691": {
"entryPoint": 7833,
"id": 3691,
"parameterSlots": 0,
"returnSlots": 0
},
"@_doSafeBatchTransferAcceptanceCheck_1357": {
"entryPoint": 10683,
"id": 1357,
"parameterSlots": 6,
"returnSlots": 0
},
"@_doSafeTransferAcceptanceCheck_1292": {
"entryPoint": 1891,
"id": 1292,
"parameterSlots": 6,
"returnSlots": 0
},
"@_mintBatch_1159": {
"entryPoint": 7959,
"id": 1159,
"parameterSlots": 4,
"returnSlots": 0
},
"@_mint_1044": {
"entryPoint": 9025,
"id": 1044,
"parameterSlots": 4,
"returnSlots": 0
},
"@_msgSender_341": {
"entryPoint": 9017,
"id": 341,
"parameterSlots": 0,
"returnSlots": 1
},
"@_safeBatchTransferFrom_932": {
"entryPoint": 9866,
"id": 932,
"parameterSlots": 5,
"returnSlots": 0
},
"@_safeTransferFrom_797": {
"entryPoint": 11640,
"id": 797,
"parameterSlots": 5,
"returnSlots": 0
},
"@_setApprovalForAll_1191": {
"entryPoint": 11276,
"id": 1191,
"parameterSlots": 3,
"returnSlots": 0
},
"@_setTokenRoyalty_1489": {
"entryPoint": 8567,
"id": 1489,
"parameterSlots": 3,
"returnSlots": 0
},
"@_setURI_943": {
"entryPoint": 7358,
"id": 943,
"parameterSlots": 1,
"returnSlots": 0
},
"@_transferOwnership_3748": {
"entryPoint": 8819,
"id": 3748,
"parameterSlots": 1,
"returnSlots": 0
},
"@balanceOfBatch_567": {
"entryPoint": 3139,
"id": 567,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_503": {
"entryPoint": 1514,
"id": 503,
"parameterSlots": 2,
"returnSlots": 1
},
"@balances_400": {
"entryPoint": 2430,
"id": 400,
"parameterSlots": 0,
"returnSlots": 0
},
"@baseUri_412": {
"entryPoint": 5395,
"id": 412,
"parameterSlots": 0,
"returnSlots": 0
},
"@batchMintWithCreator_2516": {
"entryPoint": 5562,
"id": 2516,
"parameterSlots": 6,
"returnSlots": 0
},
"@cids_404": {
"entryPoint": 4161,
"id": 404,
"parameterSlots": 0,
"returnSlots": 0
},
"@gatewayManager_1972": {
"entryPoint": 6812,
"id": 1972,
"parameterSlots": 0,
"returnSlots": 0
},
"@isApprovedForAll_602": {
"entryPoint": 6874,
"id": 602,
"parameterSlots": 2,
"returnSlots": 1
},
"@isContract_17": {
"entryPoint": 7384,
"id": 17,
"parameterSlots": 1,
"returnSlots": 1
},
"@mintBatch_2251": {
"entryPoint": 3458,
"id": 2251,
"parameterSlots": 6,
"returnSlots": 0
},
"@mintWithCreator_2350": {
"entryPoint": 4475,
"id": 2350,
"parameterSlots": 6,
"returnSlots": 0
},
"@mint_2121": {
"entryPoint": 5184,
"id": 2121,
"parameterSlots": 6,
"returnSlots": 0
},
"@mintingManager_1970": {
"entryPoint": 3420,
"id": 1970,
"parameterSlots": 0,
"returnSlots": 0
},
"@name_1966": {
"entryPoint": 1834,
"id": 1966,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3677": {
"entryPoint": 5142,
"id": 3677,
"parameterSlots": 0,
"returnSlots": 1
},
"@renounceOwnership_3705": {
"entryPoint": 4321,
"id": 3705,
"parameterSlots": 0,
"returnSlots": 0
},
"@royaltyInfo_1525": {
"entryPoint": 2467,
"id": 1525,
"parameterSlots": 2,
"returnSlots": 2
},
"@safeBatchTransferFrom_2074": {
"entryPoint": 2676,
"id": 2074,
"parameterSlots": 5,
"returnSlots": 0
},
"@safeBatchTransferFrom_680": {
"entryPoint": 7672,
"id": 680,
"parameterSlots": 5,
"returnSlots": 0
},
"@safeTransferFrom_2043": {
"entryPoint": 7022,
"id": 2043,
"parameterSlots": 5,
"returnSlots": 0
},
"@safeTransferFrom_640": {
"entryPoint": 9479,
"id": 640,
"parameterSlots": 5,
"returnSlots": 0
},
"@setApprovalForAll_2014": {
"entryPoint": 5537,
"id": 2014,
"parameterSlots": 2,
"returnSlots": 0
},
"@setApprovalForAll_584": {
"entryPoint": 9457,
"id": 584,
"parameterSlots": 2,
"returnSlots": 0
},
"@setCID_2591": {
"entryPoint": 4341,
"id": 2591,
"parameterSlots": 2,
"returnSlots": 0
},
"@setCIDs_2636": {
"entryPoint": 2759,
"id": 2636,
"parameterSlots": 2,
"returnSlots": 0
},
"@setGatewayManager_2555": {
"entryPoint": 3045,
"id": 2555,
"parameterSlots": 1,
"returnSlots": 0
},
"@setMintingManager_2542": {
"entryPoint": 4085,
"id": 2542,
"parameterSlots": 1,
"returnSlots": 0
},
"@setRoyalties_2574": {
"entryPoint": 6850,
"id": 2574,
"parameterSlots": 3,
"returnSlots": 0
},
"@setURI_2529": {
"entryPoint": 1732,
"id": 2529,
"parameterSlots": 1,
"returnSlots": 0
},
"@supportsInterface_1409": {
"entryPoint": 12307,
"id": 1409,
"parameterSlots": 1,
"returnSlots": 1
},
"@supportsInterface_1446": {
"entryPoint": 7236,
"id": 1446,
"parameterSlots": 1,
"returnSlots": 1
},
"@supportsInterface_2268": {
"entryPoint": 1714,
"id": 2268,
"parameterSlots": 1,
"returnSlots": 1
},
"@supportsInterface_454": {
"entryPoint": 9640,
"id": 454,
"parameterSlots": 1,
"returnSlots": 1
},
"@totalSupply_1968": {
"entryPoint": 2424,
"id": 1968,
"parameterSlots": 0,
"returnSlots": 0
},
"@transferOwnership_3728": {
"entryPoint": 7105,
"id": 3728,
"parameterSlots": 1,
"returnSlots": 0
},
"@uri_475": {
"entryPoint": 2362,
"id": 475,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 15128,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 14616,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 14214,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_bytes_memory_ptr": {
"entryPoint": 13655,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 13251,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 12669,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 15233,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 14751,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 14319,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool": {
"entryPoint": 16384,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 19296,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4": {
"entryPoint": 12917,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4_fromMemory": {
"entryPoint": 17369,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_memory_ptr": {
"entryPoint": 13721,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 13317,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 12723,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 14917,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 16833,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": {
"entryPoint": 13767,
"id": null,
"parameterSlots": 2,
"returnSlots": 6
},
"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": {
"entryPoint": 14365,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_tuple_t_addresst_addresst_uint256t_string_memory_ptrt_addresst_uint256": {
"entryPoint": 16023,
"id": null,
"parameterSlots": 2,
"returnSlots": 6
},
"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": {
"entryPoint": 16897,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 16469,
"id": null,
"parameterSlots": 2,
"returnSlots": 6
},
"abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 15650,
"id": null,
"parameterSlots": 2,
"returnSlots": 6
},
"abi_decode_tuple_t_addresst_bool": {
"entryPoint": 16405,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 12744,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256t_uint256t_string_memory_ptrt_addresst_uint256": {
"entryPoint": 16192,
"id": null,
"parameterSlots": 2,
"returnSlots": 6
},
"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 15279,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 14797,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 19317,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4": {
"entryPoint": 12938,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4_fromMemory": {
"entryPoint": 17390,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr": {
"entryPoint": 13363,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 13936,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_address": {
"entryPoint": 13981,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_addresst_uint256": {
"entryPoint": 16750,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_uint256t_string_memory_ptr": {
"entryPoint": 15931,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 14045,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
"entryPoint": 15458,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 14109,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 15495,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 12995,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 17222,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_contract$_IOperatorFilterRegistry_$1926_to_t_address_fromStack": {
"entryPoint": 15042,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack": {
"entryPoint": 19053,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13515,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 18046,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack": {
"entryPoint": 17705,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack": {
"entryPoint": 17851,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_1817fede6663b29fbfb5d975944c19cacb2e2baa433eb6b6f868e3e02a2dc6d9_to_t_string_memory_ptr_fromStack": {
"entryPoint": 19990,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack": {
"entryPoint": 17127,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack": {
"entryPoint": 19188,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_32e954493294dea6e4fd5368043015af0154ee8442c75bc6d4bafefd2a37baca_to_t_string_memory_ptr_fromStack": {
"entryPoint": 18483,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 20136,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 20282,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack": {
"entryPoint": 19441,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf_to_t_string_memory_ptr_fromStack": {
"entryPoint": 20428,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack": {
"entryPoint": 19549,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack": {
"entryPoint": 20733,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack": {
"entryPoint": 18748,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack": {
"entryPoint": 19841,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack": {
"entryPoint": 19695,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_ecc10bfbf0ed45bdf0ad99e2a9e4480a212cc613f2063f1f6de39580ccdfca76_to_t_string_memory_ptr_fromStack": {
"entryPoint": 18942,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 15443,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 12808,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 18173,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 15623,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": 19255,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 20550,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 17279,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 14124,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 15589,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 20495,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 13010,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_contract$_IOperatorFilterRegistry_$1926__to_t_address__fromStack_reversed": {
"entryPoint": 15057,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 13572,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 17740,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 17886,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1817fede6663b29fbfb5d975944c19cacb2e2baa433eb6b6f868e3e02a2dc6d9__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20025,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 17162,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 19223,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_32e954493294dea6e4fd5368043015af0154ee8442c75bc6d4bafefd2a37baca__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 18518,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20171,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20317,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 19476,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20463,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 19584,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20768,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 18783,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 19876,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 19730,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ecc10bfbf0ed45bdf0ad99e2a9e4480a212cc613f2063f1f6de39580ccdfca76__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 18977,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 12823,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_rational_1_by_1__to_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 19068,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 19908,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 13160,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 12576,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 15084,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 14572,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 14165,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_bytes_memory_ptr": {
"entryPoint": 13606,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 13187,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 15427,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 18025,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 15399,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 17194,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 13436,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 15482,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 15410,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 17205,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 13447,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 18014,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 18815,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 18393,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 18256,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 12628,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 12983,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 12850,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_rational_1_by_1": {
"entryPoint": 19009,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 12596,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 12690,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_contract$_IOperatorFilterRegistry_$1926_to_t_address": {
"entryPoint": 15024,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_rational_1_by_1_to_t_uint256": {
"entryPoint": 19019,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_address": {
"entryPoint": 15006,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_uint160": {
"entryPoint": 14972,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 13236,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 13464,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 17965,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 13111,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 14962,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"increment_t_uint256": {
"entryPoint": 18597,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 18209,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 18346,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 17918,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 18550,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 13064,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"return_data_selector": {
"entryPoint": 17448,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 13037,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 14209,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 13042,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 12591,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 12586,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 13047,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_right_224_unsigned": {
"entryPoint": 17435,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed": {
"entryPoint": 17626,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503": {
"entryPoint": 17772,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_1817fede6663b29fbfb5d975944c19cacb2e2baa433eb6b6f868e3e02a2dc6d9": {
"entryPoint": 19949,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9": {
"entryPoint": 17048,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe": {
"entryPoint": 19109,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_32e954493294dea6e4fd5368043015af0154ee8442c75bc6d4bafefd2a37baca": {
"entryPoint": 18442,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a": {
"entryPoint": 20057,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d": {
"entryPoint": 20203,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686": {
"entryPoint": 19362,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf": {
"entryPoint": 20349,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe": {
"entryPoint": 19508,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2": {
"entryPoint": 20654,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5": {
"entryPoint": 18669,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807": {
"entryPoint": 19762,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2": {
"entryPoint": 19616,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_ecc10bfbf0ed45bdf0ad99e2a9e4480a212cc613f2063f1f6de39580ccdfca76": {
"entryPoint": 18901,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"try_decode_error_message": {
"entryPoint": 17482,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 12646,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 16361,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes4": {
"entryPoint": 12894,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 12700,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:59906:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:18",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:18"
},
"nodeType": "YulFunctionCall",
"src": "67:9:18"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:18"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:18",
"type": ""
}
],
"src": "7:75:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:18"
},
"nodeType": "YulFunctionCall",
"src": "187:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:18"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:18"
},
"nodeType": "YulFunctionCall",
"src": "310:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:18"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:18",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:18"
},
"nodeType": "YulFunctionCall",
"src": "400:54:18"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:18"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:18",
"type": ""
}
],
"src": "334:126:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:18"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:18"
},
"nodeType": "YulFunctionCall",
"src": "532:24:18"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:18"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:18",
"type": ""
}
],
"src": "466:96:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:18"
},
"nodeType": "YulFunctionCall",
"src": "670:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:18"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:18"
},
"nodeType": "YulFunctionCall",
"src": "641:24:18"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:18"
},
"nodeType": "YulFunctionCall",
"src": "631:35:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:18"
},
"nodeType": "YulFunctionCall",
"src": "624:43:18"
},
"nodeType": "YulIf",
"src": "621:63:18"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:18",
"type": ""
}
],
"src": "568:122:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:18"
},
"nodeType": "YulFunctionCall",
"src": "767:20:18"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:18"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:18"
},
"nodeType": "YulFunctionCall",
"src": "796:33:18"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:18"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:18",
"type": ""
}
],
"src": "696:139:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "886:32:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "896:16:18",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "907:5:18"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "896:7:18"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "868:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "878:7:18",
"type": ""
}
],
"src": "841:77:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "967:79:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1024:16:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1033:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1036:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1026:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1026:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "1026:12:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "990:5:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1015:5:18"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "997:17:18"
},
"nodeType": "YulFunctionCall",
"src": "997:24:18"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "987:2:18"
},
"nodeType": "YulFunctionCall",
"src": "987:35:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "980:6:18"
},
"nodeType": "YulFunctionCall",
"src": "980:43:18"
},
"nodeType": "YulIf",
"src": "977:63:18"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "960:5:18",
"type": ""
}
],
"src": "924:122:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1104:87:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1114:29:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1136:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1123:12:18"
},
"nodeType": "YulFunctionCall",
"src": "1123:20:18"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1114:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1179:5:18"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1152:26:18"
},
"nodeType": "YulFunctionCall",
"src": "1152:33:18"
},
"nodeType": "YulExpressionStatement",
"src": "1152:33:18"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1082:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1090:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1098:5:18",
"type": ""
}
],
"src": "1052:139:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1280:391:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1326:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1328:77:18"
},
"nodeType": "YulFunctionCall",
"src": "1328:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "1328:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1301:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1310:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1297:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1297:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1322:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1293:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1293:32:18"
},
"nodeType": "YulIf",
"src": "1290:119:18"
},
{
"nodeType": "YulBlock",
"src": "1419:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1434:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1438:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1463:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1498:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1509:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1494:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1494:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1518:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1473:20:18"
},
"nodeType": "YulFunctionCall",
"src": "1473:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1463:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1546:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1561:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1575:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1565:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1591:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1626:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1637:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1622:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1622:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1646:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1601:20:18"
},
"nodeType": "YulFunctionCall",
"src": "1601:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1591:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1242:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1253:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1265:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1273:6:18",
"type": ""
}
],
"src": "1197:474:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1742:53:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1759:3:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1782:5:18"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1764:17:18"
},
"nodeType": "YulFunctionCall",
"src": "1764:24:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1752:6:18"
},
"nodeType": "YulFunctionCall",
"src": "1752:37:18"
},
"nodeType": "YulExpressionStatement",
"src": "1752:37:18"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1730:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1737:3:18",
"type": ""
}
],
"src": "1677:118:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1899:124:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1909:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1921:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1932:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1917:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1917:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1909:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1989:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2002:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2013:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1998:3:18"
},
"nodeType": "YulFunctionCall",
"src": "1998:17:18"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1945:43:18"
},
"nodeType": "YulFunctionCall",
"src": "1945:71:18"
},
"nodeType": "YulExpressionStatement",
"src": "1945:71:18"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1871:9:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1883:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1894:4:18",
"type": ""
}
],
"src": "1801:222:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2073:105:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2083:89:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2098:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2105:66:18",
"type": "",
"value": "0xffffffff00000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2094:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2094:78:18"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2083:7:18"
}
]
}
]
},
"name": "cleanup_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2055:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2065:7:18",
"type": ""
}
],
"src": "2029:149:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2226:78:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2282:16:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2291:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2294:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2284:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2284:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "2284:12:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2249:5:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2273:5:18"
}
],
"functionName": {
"name": "cleanup_t_bytes4",
"nodeType": "YulIdentifier",
"src": "2256:16:18"
},
"nodeType": "YulFunctionCall",
"src": "2256:23:18"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2246:2:18"
},
"nodeType": "YulFunctionCall",
"src": "2246:34:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2239:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2239:42:18"
},
"nodeType": "YulIf",
"src": "2236:62:18"
}
]
},
"name": "validator_revert_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2219:5:18",
"type": ""
}
],
"src": "2184:120:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2361:86:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2371:29:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2393:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2380:12:18"
},
"nodeType": "YulFunctionCall",
"src": "2380:20:18"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2371:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2435:5:18"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "2409:25:18"
},
"nodeType": "YulFunctionCall",
"src": "2409:32:18"
},
"nodeType": "YulExpressionStatement",
"src": "2409:32:18"
}
]
},
"name": "abi_decode_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2339:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2347:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2355:5:18",
"type": ""
}
],
"src": "2310:137:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2518:262:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2564:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2566:77:18"
},
"nodeType": "YulFunctionCall",
"src": "2566:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "2566:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2539:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2548:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2535:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2535:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2560:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2531:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2531:32:18"
},
"nodeType": "YulIf",
"src": "2528:119:18"
},
{
"nodeType": "YulBlock",
"src": "2657:116:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2672:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2686:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2676:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2701:62:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2735:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2746:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2731:3:18"
},
"nodeType": "YulFunctionCall",
"src": "2731:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2755:7:18"
}
],
"functionName": {
"name": "abi_decode_t_bytes4",
"nodeType": "YulIdentifier",
"src": "2711:19:18"
},
"nodeType": "YulFunctionCall",
"src": "2711:52:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2701:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2488:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2499:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2511:6:18",
"type": ""
}
],
"src": "2453:327:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2828:48:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2838:32:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2863:5:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2856:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2856:13:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2849:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2849:21:18"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2838:7:18"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2810:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2820:7:18",
"type": ""
}
],
"src": "2786:90:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2941:50:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2958:3:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2978:5:18"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2963:14:18"
},
"nodeType": "YulFunctionCall",
"src": "2963:21:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2951:6:18"
},
"nodeType": "YulFunctionCall",
"src": "2951:34:18"
},
"nodeType": "YulExpressionStatement",
"src": "2951:34:18"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2929:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2936:3:18",
"type": ""
}
],
"src": "2882:109:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3089:118:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3099:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3111:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3122:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3107:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3107:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3099:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3173:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3186:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3197:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3182:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3182:17:18"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "3135:37:18"
},
"nodeType": "YulFunctionCall",
"src": "3135:65:18"
},
"nodeType": "YulExpressionStatement",
"src": "3135:65:18"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3061:9:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3073:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3084:4:18",
"type": ""
}
],
"src": "2997:210:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3302:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3319:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3322:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3312:6:18"
},
"nodeType": "YulFunctionCall",
"src": "3312:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "3312:12:18"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3213:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3425:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3442:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3445:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3435:6:18"
},
"nodeType": "YulFunctionCall",
"src": "3435:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "3435:12:18"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3336:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3507:54:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3517:38:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3535:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3542:2:18",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3531:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3531:14:18"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3551:2:18",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3547:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3547:7:18"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3527:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3527:28:18"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3517:6:18"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3490:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3500:6:18",
"type": ""
}
],
"src": "3459:102:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3595:152:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3612:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3615:77:18",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3605:6:18"
},
"nodeType": "YulFunctionCall",
"src": "3605:88:18"
},
"nodeType": "YulExpressionStatement",
"src": "3605:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3709:1:18",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3712:4:18",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3702:6:18"
},
"nodeType": "YulFunctionCall",
"src": "3702:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "3702:15:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3733:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3736:4:18",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3726:6:18"
},
"nodeType": "YulFunctionCall",
"src": "3726:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "3726:15:18"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3567:180:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3796:238:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3806:58:18",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3828:6:18"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3858:4:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3836:21:18"
},
"nodeType": "YulFunctionCall",
"src": "3836:27:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3824:3:18"
},
"nodeType": "YulFunctionCall",
"src": "3824:40:18"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "3810:10:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3975:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3977:16:18"
},
"nodeType": "YulFunctionCall",
"src": "3977:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "3977:18:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3918:10:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3930:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3915:2:18"
},
"nodeType": "YulFunctionCall",
"src": "3915:34:18"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3954:10:18"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3966:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3951:2:18"
},
"nodeType": "YulFunctionCall",
"src": "3951:22:18"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3912:2:18"
},
"nodeType": "YulFunctionCall",
"src": "3912:62:18"
},
"nodeType": "YulIf",
"src": "3909:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4013:2:18",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4017:10:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4006:6:18"
},
"nodeType": "YulFunctionCall",
"src": "4006:22:18"
},
"nodeType": "YulExpressionStatement",
"src": "4006:22:18"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3782:6:18",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3790:4:18",
"type": ""
}
],
"src": "3753:281:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4081:88:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4091:30:18",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "4101:18:18"
},
"nodeType": "YulFunctionCall",
"src": "4101:20:18"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4091:6:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4150:6:18"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4158:4:18"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "4130:19:18"
},
"nodeType": "YulFunctionCall",
"src": "4130:33:18"
},
"nodeType": "YulExpressionStatement",
"src": "4130:33:18"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4065:4:18",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4074:6:18",
"type": ""
}
],
"src": "4040:129:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4242:241:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4347:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4349:16:18"
},
"nodeType": "YulFunctionCall",
"src": "4349:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "4349:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4319:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4327:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4316:2:18"
},
"nodeType": "YulFunctionCall",
"src": "4316:30:18"
},
"nodeType": "YulIf",
"src": "4313:56:18"
},
{
"nodeType": "YulAssignment",
"src": "4379:37:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4409:6:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4387:21:18"
},
"nodeType": "YulFunctionCall",
"src": "4387:29:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4379:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4453:23:18",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4465:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4471:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4461:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4461:15:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4453:4:18"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4226:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4237:4:18",
"type": ""
}
],
"src": "4175:308:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4540:103:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4563:3:18"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4568:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4573:6:18"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4550:12:18"
},
"nodeType": "YulFunctionCall",
"src": "4550:30:18"
},
"nodeType": "YulExpressionStatement",
"src": "4550:30:18"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4621:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4626:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4617:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4617:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4635:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4610:6:18"
},
"nodeType": "YulFunctionCall",
"src": "4610:27:18"
},
"nodeType": "YulExpressionStatement",
"src": "4610:27:18"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4522:3:18",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4527:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4532:6:18",
"type": ""
}
],
"src": "4489:154:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4733:328:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4743:75:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4810:6:18"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4768:41:18"
},
"nodeType": "YulFunctionCall",
"src": "4768:49:18"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "4752:15:18"
},
"nodeType": "YulFunctionCall",
"src": "4752:66:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4743:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4834:5:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4841:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4827:6:18"
},
"nodeType": "YulFunctionCall",
"src": "4827:21:18"
},
"nodeType": "YulExpressionStatement",
"src": "4827:21:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4857:27:18",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4872:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4879:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4868:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4868:16:18"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4861:3:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4922:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "4924:77:18"
},
"nodeType": "YulFunctionCall",
"src": "4924:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "4924:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4903:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4908:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4899:3:18"
},
"nodeType": "YulFunctionCall",
"src": "4899:16:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4917:3:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4896:2:18"
},
"nodeType": "YulFunctionCall",
"src": "4896:25:18"
},
"nodeType": "YulIf",
"src": "4893:112:18"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5038:3:18"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5043:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5048:6:18"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "5014:23:18"
},
"nodeType": "YulFunctionCall",
"src": "5014:41:18"
},
"nodeType": "YulExpressionStatement",
"src": "5014:41:18"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4706:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4711:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4719:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4727:5:18",
"type": ""
}
],
"src": "4649:412:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5143:278:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5192:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "5194:77:18"
},
"nodeType": "YulFunctionCall",
"src": "5194:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "5194:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5171:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5179:4:18",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5167:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5167:17:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5186:3:18"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5163:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5163:27:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5156:6:18"
},
"nodeType": "YulFunctionCall",
"src": "5156:35:18"
},
"nodeType": "YulIf",
"src": "5153:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5284:34:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5311:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5298:12:18"
},
"nodeType": "YulFunctionCall",
"src": "5298:20:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5288:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5327:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5388:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5396:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5384:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5384:17:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5403:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5411:3:18"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5336:47:18"
},
"nodeType": "YulFunctionCall",
"src": "5336:79:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5327:5:18"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5121:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5129:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5137:5:18",
"type": ""
}
],
"src": "5081:340:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5503:433:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5549:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5551:77:18"
},
"nodeType": "YulFunctionCall",
"src": "5551:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "5551:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5524:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5533:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5520:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5520:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5545:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5516:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5516:32:18"
},
"nodeType": "YulIf",
"src": "5513:119:18"
},
{
"nodeType": "YulBlock",
"src": "5642:287:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5657:45:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5688:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5699:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5684:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5684:17:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5671:12:18"
},
"nodeType": "YulFunctionCall",
"src": "5671:31:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5661:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5749:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5751:77:18"
},
"nodeType": "YulFunctionCall",
"src": "5751:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "5751:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5721:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5729:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5718:2:18"
},
"nodeType": "YulFunctionCall",
"src": "5718:30:18"
},
"nodeType": "YulIf",
"src": "5715:117:18"
},
{
"nodeType": "YulAssignment",
"src": "5846:73:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5891:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5902:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5887:3:18"
},
"nodeType": "YulFunctionCall",
"src": "5887:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5911:7:18"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5856:30:18"
},
"nodeType": "YulFunctionCall",
"src": "5856:63:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5846:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5473:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5484:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5496:6:18",
"type": ""
}
],
"src": "5427:509:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6001:40:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6012:22:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6028:5:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6022:5:18"
},
"nodeType": "YulFunctionCall",
"src": "6022:12:18"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6012:6:18"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5984:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5994:6:18",
"type": ""
}
],
"src": "5942:99:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6143:73:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6160:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6165:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6153:6:18"
},
"nodeType": "YulFunctionCall",
"src": "6153:19:18"
},
"nodeType": "YulExpressionStatement",
"src": "6153:19:18"
},
{
"nodeType": "YulAssignment",
"src": "6181:29:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6200:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6205:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6196:3:18"
},
"nodeType": "YulFunctionCall",
"src": "6196:14:18"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "6181:11:18"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6115:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6120:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "6131:11:18",
"type": ""
}
],
"src": "6047:169:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6271:258:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6281:10:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6290:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "6285:1:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6350:63:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "6375:3:18"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6380:1:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6371:3:18"
},
"nodeType": "YulFunctionCall",
"src": "6371:11:18"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "6394:3:18"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6399:1:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6390:3:18"
},
"nodeType": "YulFunctionCall",
"src": "6390:11:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6384:5:18"
},
"nodeType": "YulFunctionCall",
"src": "6384:18:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6364:6:18"
},
"nodeType": "YulFunctionCall",
"src": "6364:39:18"
},
"nodeType": "YulExpressionStatement",
"src": "6364:39:18"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6311:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6314:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6308:2:18"
},
"nodeType": "YulFunctionCall",
"src": "6308:13:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "6322:19:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6324:15:18",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6333:1:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6336:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6329:3:18"
},
"nodeType": "YulFunctionCall",
"src": "6329:10:18"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6324:1:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "6304:3:18",
"statements": []
},
"src": "6300:113:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6447:76:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "6497:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6502:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6493:3:18"
},
"nodeType": "YulFunctionCall",
"src": "6493:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6511:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6486:6:18"
},
"nodeType": "YulFunctionCall",
"src": "6486:27:18"
},
"nodeType": "YulExpressionStatement",
"src": "6486:27:18"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6428:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6431:6:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6425:2:18"
},
"nodeType": "YulFunctionCall",
"src": "6425:13:18"
},
"nodeType": "YulIf",
"src": "6422:101:18"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "6253:3:18",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "6258:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6263:6:18",
"type": ""
}
],
"src": "6222:307:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6627:272:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6637:53:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6684:5:18"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6651:32:18"
},
"nodeType": "YulFunctionCall",
"src": "6651:39:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6641:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6699:78:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6765:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6770:6:18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6706:58:18"
},
"nodeType": "YulFunctionCall",
"src": "6706:71:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6699:3:18"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6812:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6819:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6808:3:18"
},
"nodeType": "YulFunctionCall",
"src": "6808:16:18"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6826:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6831:6:18"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "6786:21:18"
},
"nodeType": "YulFunctionCall",
"src": "6786:52:18"
},
"nodeType": "YulExpressionStatement",
"src": "6786:52:18"
},
{
"nodeType": "YulAssignment",
"src": "6847:46:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6858:3:18"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6885:6:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6863:21:18"
},
"nodeType": "YulFunctionCall",
"src": "6863:29:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6854:3:18"
},
"nodeType": "YulFunctionCall",
"src": "6854:39:18"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "6847:3:18"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6608:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6615:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6623:3:18",
"type": ""
}
],
"src": "6535:364:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7023:195:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7033:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7045:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7056:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7041:3:18"
},
"nodeType": "YulFunctionCall",
"src": "7041:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7033:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7080:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7091:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7076:3:18"
},
"nodeType": "YulFunctionCall",
"src": "7076:17:18"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7099:4:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7105:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7095:3:18"
},
"nodeType": "YulFunctionCall",
"src": "7095:20:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7069:6:18"
},
"nodeType": "YulFunctionCall",
"src": "7069:47:18"
},
"nodeType": "YulExpressionStatement",
"src": "7069:47:18"
},
{
"nodeType": "YulAssignment",
"src": "7125:86:18",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7197:6:18"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7206:4:18"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7133:63:18"
},
"nodeType": "YulFunctionCall",
"src": "7133:78:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7125:4:18"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6995:9:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7007:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7018:4:18",
"type": ""
}
],
"src": "6905:313:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7290:241:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "7395:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "7397:16:18"
},
"nodeType": "YulFunctionCall",
"src": "7397:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "7397:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7367:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7375:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7364:2:18"
},
"nodeType": "YulFunctionCall",
"src": "7364:30:18"
},
"nodeType": "YulIf",
"src": "7361:56:18"
},
{
"nodeType": "YulAssignment",
"src": "7427:37:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7457:6:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "7435:21:18"
},
"nodeType": "YulFunctionCall",
"src": "7435:29:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7427:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7501:23:18",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7513:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7519:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7509:3:18"
},
"nodeType": "YulFunctionCall",
"src": "7509:15:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7501:4:18"
}
]
}
]
},
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7274:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "7285:4:18",
"type": ""
}
],
"src": "7224:307:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7620:327:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7630:74:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7696:6:18"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7655:40:18"
},
"nodeType": "YulFunctionCall",
"src": "7655:48:18"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "7639:15:18"
},
"nodeType": "YulFunctionCall",
"src": "7639:65:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7630:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7720:5:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7727:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7713:6:18"
},
"nodeType": "YulFunctionCall",
"src": "7713:21:18"
},
"nodeType": "YulExpressionStatement",
"src": "7713:21:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "7743:27:18",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7758:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7765:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7754:3:18"
},
"nodeType": "YulFunctionCall",
"src": "7754:16:18"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "7747:3:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7808:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "7810:77:18"
},
"nodeType": "YulFunctionCall",
"src": "7810:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "7810:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7789:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7794:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7785:3:18"
},
"nodeType": "YulFunctionCall",
"src": "7785:16:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7803:3:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7782:2:18"
},
"nodeType": "YulFunctionCall",
"src": "7782:25:18"
},
"nodeType": "YulIf",
"src": "7779:112:18"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7924:3:18"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7929:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7934:6:18"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "7900:23:18"
},
"nodeType": "YulFunctionCall",
"src": "7900:41:18"
},
"nodeType": "YulExpressionStatement",
"src": "7900:41:18"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "7593:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7598:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7606:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "7614:5:18",
"type": ""
}
],
"src": "7537:410:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8027:277:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8076:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "8078:77:18"
},
"nodeType": "YulFunctionCall",
"src": "8078:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "8078:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8055:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8063:4:18",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8051:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8051:17:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8070:3:18"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "8047:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8047:27:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8040:6:18"
},
"nodeType": "YulFunctionCall",
"src": "8040:35:18"
},
"nodeType": "YulIf",
"src": "8037:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "8168:34:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8195:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "8182:12:18"
},
"nodeType": "YulFunctionCall",
"src": "8182:20:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "8172:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8211:87:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8271:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8279:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8267:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8267:17:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8286:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8294:3:18"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8220:46:18"
},
"nodeType": "YulFunctionCall",
"src": "8220:78:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "8211:5:18"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8005:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8013:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "8021:5:18",
"type": ""
}
],
"src": "7966:338:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8470:1075:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8517:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "8519:77:18"
},
"nodeType": "YulFunctionCall",
"src": "8519:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "8519:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8491:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8500:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8487:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8487:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8512:3:18",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "8483:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8483:33:18"
},
"nodeType": "YulIf",
"src": "8480:120:18"
},
{
"nodeType": "YulBlock",
"src": "8610:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8625:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8639:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8629:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8654:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8689:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8700:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8685:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8685:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8709:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8664:20:18"
},
"nodeType": "YulFunctionCall",
"src": "8664:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8654:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8737:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8752:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8766:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8756:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8782:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8817:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8828:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8813:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8813:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8837:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8792:20:18"
},
"nodeType": "YulFunctionCall",
"src": "8792:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "8782:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8865:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8880:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8894:2:18",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8884:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8910:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8945:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8956:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8941:3:18"
},
"nodeType": "YulFunctionCall",
"src": "8941:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8965:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8920:20:18"
},
"nodeType": "YulFunctionCall",
"src": "8920:53:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "8910:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8993:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9008:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9022:2:18",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9012:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9038:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9073:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9084:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9069:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9069:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9093:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "9048:20:18"
},
"nodeType": "YulFunctionCall",
"src": "9048:53:18"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "9038:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "9121:119:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9136:17:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9150:3:18",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9140:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9167:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9202:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9213:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9198:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9198:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9222:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "9177:20:18"
},
"nodeType": "YulFunctionCall",
"src": "9177:53:18"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "9167:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "9250:288:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9265:47:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9296:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9307:3:18",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9292:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9292:19:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "9279:12:18"
},
"nodeType": "YulFunctionCall",
"src": "9279:33:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9269:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9359:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "9361:77:18"
},
"nodeType": "YulFunctionCall",
"src": "9361:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "9361:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9331:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9339:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9328:2:18"
},
"nodeType": "YulFunctionCall",
"src": "9328:30:18"
},
"nodeType": "YulIf",
"src": "9325:117:18"
},
{
"nodeType": "YulAssignment",
"src": "9456:72:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9500:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9511:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9496:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9496:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9520:7:18"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9466:29:18"
},
"nodeType": "YulFunctionCall",
"src": "9466:62:18"
},
"variableNames": [
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "9456:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8400:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "8411:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8423:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "8431:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "8439:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "8447:6:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "8455:6:18",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "8463:6:18",
"type": ""
}
],
"src": "8310:1235:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9617:263:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9663:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "9665:77:18"
},
"nodeType": "YulFunctionCall",
"src": "9665:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "9665:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9638:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9647:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9634:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9634:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9659:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "9630:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9630:32:18"
},
"nodeType": "YulIf",
"src": "9627:119:18"
},
{
"nodeType": "YulBlock",
"src": "9756:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9771:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9785:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9775:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9800:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9835:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9846:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9831:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9831:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9855:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "9810:20:18"
},
"nodeType": "YulFunctionCall",
"src": "9810:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9800:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9587:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "9598:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9610:6:18",
"type": ""
}
],
"src": "9551:329:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9969:391:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10015:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "10017:77:18"
},
"nodeType": "YulFunctionCall",
"src": "10017:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "10017:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9990:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9999:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9986:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9986:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10011:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "9982:3:18"
},
"nodeType": "YulFunctionCall",
"src": "9982:32:18"
},
"nodeType": "YulIf",
"src": "9979:119:18"
},
{
"nodeType": "YulBlock",
"src": "10108:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10123:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10137:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10127:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10152:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10187:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10198:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10183:3:18"
},
"nodeType": "YulFunctionCall",
"src": "10183:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10207:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "10162:20:18"
},
"nodeType": "YulFunctionCall",
"src": "10162:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10152:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "10235:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10250:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10264:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10254:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10280:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10315:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10326:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10311:3:18"
},
"nodeType": "YulFunctionCall",
"src": "10311:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10335:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "10290:20:18"
},
"nodeType": "YulFunctionCall",
"src": "10290:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10280:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9931:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "9942:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9954:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "9962:6:18",
"type": ""
}
],
"src": "9886:474:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10449:391:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10495:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "10497:77:18"
},
"nodeType": "YulFunctionCall",
"src": "10497:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "10497:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10470:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10479:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10466:3:18"
},
"nodeType": "YulFunctionCall",
"src": "10466:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10491:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "10462:3:18"
},
"nodeType": "YulFunctionCall",
"src": "10462:32:18"
},
"nodeType": "YulIf",
"src": "10459:119:18"
},
{
"nodeType": "YulBlock",
"src": "10588:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10603:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10617:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10607:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10632:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10667:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10678:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10663:3:18"
},
"nodeType": "YulFunctionCall",
"src": "10663:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10687:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "10642:20:18"
},
"nodeType": "YulFunctionCall",
"src": "10642:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10632:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "10715:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10730:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10744:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10734:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10760:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10795:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10806:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10791:3:18"
},
"nodeType": "YulFunctionCall",
"src": "10791:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10815:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "10770:20:18"
},
"nodeType": "YulFunctionCall",
"src": "10770:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10760:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10411:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "10422:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10434:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10442:6:18",
"type": ""
}
],
"src": "10366:474:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10911:53:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10928:3:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10951:5:18"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "10933:17:18"
},
"nodeType": "YulFunctionCall",
"src": "10933:24:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10921:6:18"
},
"nodeType": "YulFunctionCall",
"src": "10921:37:18"
},
"nodeType": "YulExpressionStatement",
"src": "10921:37:18"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10899:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "10906:3:18",
"type": ""
}
],
"src": "10846:118:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11096:206:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11106:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11118:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11129:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11114:3:18"
},
"nodeType": "YulFunctionCall",
"src": "11114:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11106:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11186:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11199:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11210:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11195:3:18"
},
"nodeType": "YulFunctionCall",
"src": "11195:17:18"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "11142:43:18"
},
"nodeType": "YulFunctionCall",
"src": "11142:71:18"
},
"nodeType": "YulExpressionStatement",
"src": "11142:71:18"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11267:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11280:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11291:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11276:3:18"
},
"nodeType": "YulFunctionCall",
"src": "11276:18:18"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11223:43:18"
},
"nodeType": "YulFunctionCall",
"src": "11223:72:18"
},
"nodeType": "YulExpressionStatement",
"src": "11223:72:18"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11060:9:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11072:6:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11080:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11091:4:18",
"type": ""
}
],
"src": "10970:332:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11390:229:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11495:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "11497:16:18"
},
"nodeType": "YulFunctionCall",
"src": "11497:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "11497:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11467:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11475:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "11464:2:18"
},
"nodeType": "YulFunctionCall",
"src": "11464:30:18"
},
"nodeType": "YulIf",
"src": "11461:56:18"
},
{
"nodeType": "YulAssignment",
"src": "11527:25:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11539:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11547:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "11535:3:18"
},
"nodeType": "YulFunctionCall",
"src": "11535:17:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "11527:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "11589:23:18",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "11601:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11607:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11597:3:18"
},
"nodeType": "YulFunctionCall",
"src": "11597:15:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "11589:4:18"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11374:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "11385:4:18",
"type": ""
}
],
"src": "11308:311:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11714:28:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11731:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11734:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11724:6:18"
},
"nodeType": "YulFunctionCall",
"src": "11724:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "11724:12:18"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "11625:117:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11867:608:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11877:90:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11959:6:18"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "11902:56:18"
},
"nodeType": "YulFunctionCall",
"src": "11902:64:18"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "11886:15:18"
},
"nodeType": "YulFunctionCall",
"src": "11886:81:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "11877:5:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "11976:16:18",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "11987:5:18"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "11980:3:18",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "12009:5:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12016:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12002:6:18"
},
"nodeType": "YulFunctionCall",
"src": "12002:21:18"
},
"nodeType": "YulExpressionStatement",
"src": "12002:21:18"
},
{
"nodeType": "YulAssignment",
"src": "12032:23:18",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "12043:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12050:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12039:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12039:16:18"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12032:3:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "12065:44:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12083:6:18"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12095:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12103:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "12091:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12091:17:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12079:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12079:30:18"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "12069:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12137:103:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "12151:77:18"
},
"nodeType": "YulFunctionCall",
"src": "12151:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "12151:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "12124:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12132:3:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12121:2:18"
},
"nodeType": "YulFunctionCall",
"src": "12121:15:18"
},
"nodeType": "YulIf",
"src": "12118:122:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12325:144:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12340:21:18",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "12358:3:18"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "12344:10:18",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12382:3:18"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "12408:10:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12420:3:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "12387:20:18"
},
"nodeType": "YulFunctionCall",
"src": "12387:37:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12375:6:18"
},
"nodeType": "YulFunctionCall",
"src": "12375:50:18"
},
"nodeType": "YulExpressionStatement",
"src": "12375:50:18"
},
{
"nodeType": "YulAssignment",
"src": "12438:21:18",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12449:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12454:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12445:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12445:14:18"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "12438:3:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "12278:3:18"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "12283:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "12275:2:18"
},
"nodeType": "YulFunctionCall",
"src": "12275:15:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "12291:25:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12293:21:18",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "12304:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12309:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12300:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12300:14:18"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "12293:3:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "12253:21:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12255:17:18",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12266:6:18"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "12259:3:18",
"type": ""
}
]
}
]
},
"src": "12249:220:18"
}
]
},
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11837:6:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11845:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11853:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "11861:5:18",
"type": ""
}
],
"src": "11765:710:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12575:293:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12624:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "12626:77:18"
},
"nodeType": "YulFunctionCall",
"src": "12626:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "12626:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12603:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12611:4:18",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12599:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12599:17:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12618:3:18"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "12595:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12595:27:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12588:6:18"
},
"nodeType": "YulFunctionCall",
"src": "12588:35:18"
},
"nodeType": "YulIf",
"src": "12585:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "12716:34:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12743:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "12730:12:18"
},
"nodeType": "YulFunctionCall",
"src": "12730:20:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "12720:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "12759:103:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12835:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12843:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12831:3:18"
},
"nodeType": "YulFunctionCall",
"src": "12831:17:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12850:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12858:3:18"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "12768:62:18"
},
"nodeType": "YulFunctionCall",
"src": "12768:94:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "12759:5:18"
}
]
}
]
},
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12553:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "12561:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "12569:5:18",
"type": ""
}
],
"src": "12498:370:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13067:1316:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13114:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "13116:77:18"
},
"nodeType": "YulFunctionCall",
"src": "13116:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "13116:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13088:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13097:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13084:3:18"
},
"nodeType": "YulFunctionCall",
"src": "13084:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13109:3:18",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "13080:3:18"
},
"nodeType": "YulFunctionCall",
"src": "13080:33:18"
},
"nodeType": "YulIf",
"src": "13077:120:18"
},
{
"nodeType": "YulBlock",
"src": "13207:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13222:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "13236:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13226:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "13251:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13286:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13297:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13282:3:18"
},
"nodeType": "YulFunctionCall",
"src": "13282:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13306:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "13261:20:18"
},
"nodeType": "YulFunctionCall",
"src": "13261:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "13251:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "13334:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13349:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "13363:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13353:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "13379:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13414:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13425:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13410:3:18"
},
"nodeType": "YulFunctionCall",
"src": "13410:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13434:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "13389:20:18"
},
"nodeType": "YulFunctionCall",
"src": "13389:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "13379:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "13462:303:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13477:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13508:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13519:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13504:3:18"
},
"nodeType": "YulFunctionCall",
"src": "13504:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "13491:12:18"
},
"nodeType": "YulFunctionCall",
"src": "13491:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13481:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "13570:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "13572:77:18"
},
"nodeType": "YulFunctionCall",
"src": "13572:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "13572:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13542:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13550:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "13539:2:18"
},
"nodeType": "YulFunctionCall",
"src": "13539:30:18"
},
"nodeType": "YulIf",
"src": "13536:117:18"
},
{
"nodeType": "YulAssignment",
"src": "13667:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13727:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13738:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13723:3:18"
},
"nodeType": "YulFunctionCall",
"src": "13723:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13747:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "13677:45:18"
},
"nodeType": "YulFunctionCall",
"src": "13677:78:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "13667:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "13775:303:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13790:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13821:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13832:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13817:3:18"
},
"nodeType": "YulFunctionCall",
"src": "13817:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "13804:12:18"
},
"nodeType": "YulFunctionCall",
"src": "13804:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13794:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "13883:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "13885:77:18"
},
"nodeType": "YulFunctionCall",
"src": "13885:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "13885:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13855:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13863:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "13852:2:18"
},
"nodeType": "YulFunctionCall",
"src": "13852:30:18"
},
"nodeType": "YulIf",
"src": "13849:117:18"
},
{
"nodeType": "YulAssignment",
"src": "13980:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14040:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "14051:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14036:3:18"
},
"nodeType": "YulFunctionCall",
"src": "14036:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "14060:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "13990:45:18"
},
"nodeType": "YulFunctionCall",
"src": "13990:78:18"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "13980:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "14088:288:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "14103:47:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14134:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14145:3:18",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14130:3:18"
},
"nodeType": "YulFunctionCall",
"src": "14130:19:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "14117:12:18"
},
"nodeType": "YulFunctionCall",
"src": "14117:33:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "14107:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "14197:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "14199:77:18"
},
"nodeType": "YulFunctionCall",
"src": "14199:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "14199:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "14169:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14177:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "14166:2:18"
},
"nodeType": "YulFunctionCall",
"src": "14166:30:18"
},
"nodeType": "YulIf",
"src": "14163:117:18"
},
{
"nodeType": "YulAssignment",
"src": "14294:72:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14338:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "14349:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14334:3:18"
},
"nodeType": "YulFunctionCall",
"src": "14334:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "14358:7:18"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14304:29:18"
},
"nodeType": "YulFunctionCall",
"src": "14304:62:18"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "14294:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13005:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "13016:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "13028:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "13036:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "13044:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "13052:6:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "13060:6:18",
"type": ""
}
],
"src": "12874:1509:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14481:229:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "14586:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "14588:16:18"
},
"nodeType": "YulFunctionCall",
"src": "14588:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "14588:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14558:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14566:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "14555:2:18"
},
"nodeType": "YulFunctionCall",
"src": "14555:30:18"
},
"nodeType": "YulIf",
"src": "14552:56:18"
},
{
"nodeType": "YulAssignment",
"src": "14618:25:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14630:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14638:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "14626:3:18"
},
"nodeType": "YulFunctionCall",
"src": "14626:17:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "14618:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14680:23:18",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "14692:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14698:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14688:3:18"
},
"nodeType": "YulFunctionCall",
"src": "14688:15:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "14680:4:18"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "14465:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "14476:4:18",
"type": ""
}
],
"src": "14389:321:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14844:833:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14854:100:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14946:6:18"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14879:66:18"
},
"nodeType": "YulFunctionCall",
"src": "14879:74:18"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "14863:15:18"
},
"nodeType": "YulFunctionCall",
"src": "14863:91:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "14854:5:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "14963:16:18",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "14974:5:18"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "14967:3:18",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "14996:5:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15003:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14989:6:18"
},
"nodeType": "YulFunctionCall",
"src": "14989:21:18"
},
"nodeType": "YulExpressionStatement",
"src": "14989:21:18"
},
{
"nodeType": "YulAssignment",
"src": "15019:23:18",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "15030:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15037:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15026:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15026:16:18"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "15019:3:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "15052:44:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "15070:6:18"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15082:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15090:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "15078:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15078:17:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15066:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15066:30:18"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "15056:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "15124:103:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "15138:77:18"
},
"nodeType": "YulFunctionCall",
"src": "15138:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "15138:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "15111:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15119:3:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "15108:2:18"
},
"nodeType": "YulFunctionCall",
"src": "15108:15:18"
},
"nodeType": "YulIf",
"src": "15105:122:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15312:359:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15327:36:18",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "15359:3:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "15346:12:18"
},
"nodeType": "YulFunctionCall",
"src": "15346:17:18"
},
"variables": [
{
"name": "innerOffset",
"nodeType": "YulTypedName",
"src": "15331:11:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "15415:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "15417:77:18"
},
"nodeType": "YulFunctionCall",
"src": "15417:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "15417:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "innerOffset",
"nodeType": "YulIdentifier",
"src": "15382:11:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15395:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "15379:2:18"
},
"nodeType": "YulFunctionCall",
"src": "15379:35:18"
},
"nodeType": "YulIf",
"src": "15376:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "15511:42:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "15533:6:18"
},
{
"name": "innerOffset",
"nodeType": "YulIdentifier",
"src": "15541:11:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15529:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15529:24:18"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "15515:10:18",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "15574:3:18"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "15610:10:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15622:3:18"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "15579:30:18"
},
"nodeType": "YulFunctionCall",
"src": "15579:47:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15567:6:18"
},
"nodeType": "YulFunctionCall",
"src": "15567:60:18"
},
"nodeType": "YulExpressionStatement",
"src": "15567:60:18"
},
{
"nodeType": "YulAssignment",
"src": "15640:21:18",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "15651:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15656:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15647:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15647:14:18"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "15640:3:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "15265:3:18"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "15270:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "15262:2:18"
},
"nodeType": "YulFunctionCall",
"src": "15262:15:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "15278:25:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15280:21:18",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "15291:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15296:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15287:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15287:14:18"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "15280:3:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "15240:21:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15242:17:18",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "15253:6:18"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "15246:3:18",
"type": ""
}
]
}
]
},
"src": "15236:435:18"
}
]
},
"name": "abi_decode_available_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "14814:6:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "14822:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "14830:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "14838:5:18",
"type": ""
}
],
"src": "14732:945:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15786:303:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "15835:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "15837:77:18"
},
"nodeType": "YulFunctionCall",
"src": "15837:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "15837:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "15814:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15822:4:18",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15810:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15810:17:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15829:3:18"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "15806:3:18"
},
"nodeType": "YulFunctionCall",
"src": "15806:27:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "15799:6:18"
},
"nodeType": "YulFunctionCall",
"src": "15799:35:18"
},
"nodeType": "YulIf",
"src": "15796:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "15927:34:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "15954:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "15941:12:18"
},
"nodeType": "YulFunctionCall",
"src": "15941:20:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "15931:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "15970:113:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16056:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16064:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16052:3:18"
},
"nodeType": "YulFunctionCall",
"src": "16052:17:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "16071:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "16079:3:18"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "15979:72:18"
},
"nodeType": "YulFunctionCall",
"src": "15979:104:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "15970:5:18"
}
]
}
]
},
"name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "15764:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "15772:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "15780:5:18",
"type": ""
}
],
"src": "15699:390:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16238:771:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "16284:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "16286:77:18"
},
"nodeType": "YulFunctionCall",
"src": "16286:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "16286:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "16259:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16268:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "16255:3:18"
},
"nodeType": "YulFunctionCall",
"src": "16255:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16280:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "16251:3:18"
},
"nodeType": "YulFunctionCall",
"src": "16251:32:18"
},
"nodeType": "YulIf",
"src": "16248:119:18"
},
{
"nodeType": "YulBlock",
"src": "16377:302:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "16392:45:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16423:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16434:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16419:3:18"
},
"nodeType": "YulFunctionCall",
"src": "16419:17:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "16406:12:18"
},
"nodeType": "YulFunctionCall",
"src": "16406:31:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "16396:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "16484:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "16486:77:18"
},
"nodeType": "YulFunctionCall",
"src": "16486:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "16486:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16456:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16464:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "16453:2:18"
},
"nodeType": "YulFunctionCall",
"src": "16453:30:18"
},
"nodeType": "YulIf",
"src": "16450:117:18"
},
{
"nodeType": "YulAssignment",
"src": "16581:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16641:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16652:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16637:3:18"
},
"nodeType": "YulFunctionCall",
"src": "16637:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "16661:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "16591:45:18"
},
"nodeType": "YulFunctionCall",
"src": "16591:78:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "16581:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "16689:313:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "16704:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16735:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16746:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16731:3:18"
},
"nodeType": "YulFunctionCall",
"src": "16731:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "16718:12:18"
},
"nodeType": "YulFunctionCall",
"src": "16718:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "16708:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "16797:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "16799:77:18"
},
"nodeType": "YulFunctionCall",
"src": "16799:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "16799:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16769:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16777:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "16766:2:18"
},
"nodeType": "YulFunctionCall",
"src": "16766:30:18"
},
"nodeType": "YulIf",
"src": "16763:117:18"
},
{
"nodeType": "YulAssignment",
"src": "16894:98:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16964:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16975:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16960:3:18"
},
"nodeType": "YulFunctionCall",
"src": "16960:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "16984:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "16904:55:18"
},
"nodeType": "YulFunctionCall",
"src": "16904:88:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "16894:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16200:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "16211:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "16223:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "16231:6:18",
"type": ""
}
],
"src": "16095:914:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17081:263:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "17127:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "17129:77:18"
},
"nodeType": "YulFunctionCall",
"src": "17129:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "17129:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17102:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17111:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "17098:3:18"
},
"nodeType": "YulFunctionCall",
"src": "17098:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17123:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "17094:3:18"
},
"nodeType": "YulFunctionCall",
"src": "17094:32:18"
},
"nodeType": "YulIf",
"src": "17091:119:18"
},
{
"nodeType": "YulBlock",
"src": "17220:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17235:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "17249:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "17239:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "17264:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17299:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "17310:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17295:3:18"
},
"nodeType": "YulFunctionCall",
"src": "17295:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "17319:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "17274:20:18"
},
"nodeType": "YulFunctionCall",
"src": "17274:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "17264:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "17051:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "17062:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "17074:6:18",
"type": ""
}
],
"src": "17015:329:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17382:28:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17392:12:18",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "17399:5:18"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "17392:3:18"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "17368:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "17378:3:18",
"type": ""
}
],
"src": "17350:60:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17476:82:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17486:66:18",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "17544:5:18"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "17526:17:18"
},
"nodeType": "YulFunctionCall",
"src": "17526:24:18"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "17517:8:18"
},
"nodeType": "YulFunctionCall",
"src": "17517:34:18"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "17499:17:18"
},
"nodeType": "YulFunctionCall",
"src": "17499:53:18"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "17486:9:18"
}
]
}
]
},
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "17456:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "17466:9:18",
"type": ""
}
],
"src": "17416:142:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17624:66:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17634:50:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "17678:5:18"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulIdentifier",
"src": "17647:30:18"
},
"nodeType": "YulFunctionCall",
"src": "17647:37:18"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "17634:9:18"
}
]
}
]
},
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "17604:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "17614:9:18",
"type": ""
}
],
"src": "17564:126:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17788:66:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17798:50:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "17842:5:18"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulIdentifier",
"src": "17811:30:18"
},
"nodeType": "YulFunctionCall",
"src": "17811:37:18"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "17798:9:18"
}
]
}
]
},
"name": "convert_t_contract$_IOperatorFilterRegistry_$1926_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "17768:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "17778:9:18",
"type": ""
}
],
"src": "17696:158:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17957:98:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17974:3:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "18042:5:18"
}
],
"functionName": {
"name": "convert_t_contract$_IOperatorFilterRegistry_$1926_to_t_address",
"nodeType": "YulIdentifier",
"src": "17979:62:18"
},
"nodeType": "YulFunctionCall",
"src": "17979:69:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17967:6:18"
},
"nodeType": "YulFunctionCall",
"src": "17967:82:18"
},
"nodeType": "YulExpressionStatement",
"src": "17967:82:18"
}
]
},
"name": "abi_encode_t_contract$_IOperatorFilterRegistry_$1926_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "17945:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "17952:3:18",
"type": ""
}
],
"src": "17860:195:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18191:156:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18201:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18213:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18224:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18209:3:18"
},
"nodeType": "YulFunctionCall",
"src": "18209:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "18201:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "18313:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18326:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18337:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18322:3:18"
},
"nodeType": "YulFunctionCall",
"src": "18322:17:18"
}
],
"functionName": {
"name": "abi_encode_t_contract$_IOperatorFilterRegistry_$1926_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "18237:75:18"
},
"nodeType": "YulFunctionCall",
"src": "18237:103:18"
},
"nodeType": "YulExpressionStatement",
"src": "18237:103:18"
}
]
},
"name": "abi_encode_tuple_t_contract$_IOperatorFilterRegistry_$1926__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "18163:9:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "18175:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "18186:4:18",
"type": ""
}
],
"src": "18061:286:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18435:229:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "18540:22:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "18542:16:18"
},
"nodeType": "YulFunctionCall",
"src": "18542:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "18542:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "18512:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18520:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "18509:2:18"
},
"nodeType": "YulFunctionCall",
"src": "18509:30:18"
},
"nodeType": "YulIf",
"src": "18506:56:18"
},
{
"nodeType": "YulAssignment",
"src": "18572:25:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "18584:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18592:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "18580:3:18"
},
"nodeType": "YulFunctionCall",
"src": "18580:17:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "18572:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "18634:23:18",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "18646:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18652:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18642:3:18"
},
"nodeType": "YulFunctionCall",
"src": "18642:15:18"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "18634:4:18"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "18419:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "18430:4:18",
"type": ""
}
],
"src": "18353:311:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18789:608:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18799:90:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "18881:6:18"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "18824:56:18"
},
"nodeType": "YulFunctionCall",
"src": "18824:64:18"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "18808:15:18"
},
"nodeType": "YulFunctionCall",
"src": "18808:81:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "18799:5:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "18898:16:18",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "18909:5:18"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "18902:3:18",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "18931:5:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "18938:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "18924:6:18"
},
"nodeType": "YulFunctionCall",
"src": "18924:21:18"
},
"nodeType": "YulExpressionStatement",
"src": "18924:21:18"
},
{
"nodeType": "YulAssignment",
"src": "18954:23:18",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "18965:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18972:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18961:3:18"
},
"nodeType": "YulFunctionCall",
"src": "18961:16:18"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "18954:3:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "18987:44:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "19005:6:18"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19017:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19025:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "19013:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19013:17:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19001:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19001:30:18"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "18991:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "19059:103:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "19073:77:18"
},
"nodeType": "YulFunctionCall",
"src": "19073:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "19073:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "19046:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19054:3:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "19043:2:18"
},
"nodeType": "YulFunctionCall",
"src": "19043:15:18"
},
"nodeType": "YulIf",
"src": "19040:122:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19247:144:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "19262:21:18",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "19280:3:18"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "19266:10:18",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "19304:3:18"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "19330:10:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19342:3:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "19309:20:18"
},
"nodeType": "YulFunctionCall",
"src": "19309:37:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19297:6:18"
},
"nodeType": "YulFunctionCall",
"src": "19297:50:18"
},
"nodeType": "YulExpressionStatement",
"src": "19297:50:18"
},
{
"nodeType": "YulAssignment",
"src": "19360:21:18",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "19371:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19376:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19367:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19367:14:18"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "19360:3:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "19200:3:18"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "19205:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "19197:2:18"
},
"nodeType": "YulFunctionCall",
"src": "19197:15:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "19213:25:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19215:21:18",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "19226:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19231:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19222:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19222:14:18"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "19215:3:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "19175:21:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "19177:17:18",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "19188:6:18"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "19181:3:18",
"type": ""
}
]
}
]
},
"src": "19171:220:18"
}
]
},
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "18759:6:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "18767:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "18775:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "18783:5:18",
"type": ""
}
],
"src": "18687:710:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19497:293:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "19546:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "19548:77:18"
},
"nodeType": "YulFunctionCall",
"src": "19548:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "19548:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "19525:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19533:4:18",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19521:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19521:17:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19540:3:18"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "19517:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19517:27:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "19510:6:18"
},
"nodeType": "YulFunctionCall",
"src": "19510:35:18"
},
"nodeType": "YulIf",
"src": "19507:122:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "19638:34:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "19665:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "19652:12:18"
},
"nodeType": "YulFunctionCall",
"src": "19652:20:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "19642:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "19681:103:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "19757:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19765:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19753:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19753:17:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19772:6:18"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19780:3:18"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "19690:62:18"
},
"nodeType": "YulFunctionCall",
"src": "19690:94:18"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "19681:5:18"
}
]
}
]
},
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "19475:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "19483:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "19491:5:18",
"type": ""
}
],
"src": "19420:370:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19929:761:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "19975:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "19977:77:18"
},
"nodeType": "YulFunctionCall",
"src": "19977:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "19977:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "19950:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "19959:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "19946:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19946:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19971:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "19942:3:18"
},
"nodeType": "YulFunctionCall",
"src": "19942:32:18"
},
"nodeType": "YulIf",
"src": "19939:119:18"
},
{
"nodeType": "YulBlock",
"src": "20068:302:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "20083:45:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20114:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20125:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20110:3:18"
},
"nodeType": "YulFunctionCall",
"src": "20110:17:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "20097:12:18"
},
"nodeType": "YulFunctionCall",
"src": "20097:31:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "20087:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "20175:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "20177:77:18"
},
"nodeType": "YulFunctionCall",
"src": "20177:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "20177:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "20147:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20155:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "20144:2:18"
},
"nodeType": "YulFunctionCall",
"src": "20144:30:18"
},
"nodeType": "YulIf",
"src": "20141:117:18"
},
{
"nodeType": "YulAssignment",
"src": "20272:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20332:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "20343:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20328:3:18"
},
"nodeType": "YulFunctionCall",
"src": "20328:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "20352:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "20282:45:18"
},
"nodeType": "YulFunctionCall",
"src": "20282:78:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "20272:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "20380:303:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "20395:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20426:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20437:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20422:3:18"
},
"nodeType": "YulFunctionCall",
"src": "20422:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "20409:12:18"
},
"nodeType": "YulFunctionCall",
"src": "20409:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "20399:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "20488:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "20490:77:18"
},
"nodeType": "YulFunctionCall",
"src": "20490:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "20490:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "20460:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20468:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "20457:2:18"
},
"nodeType": "YulFunctionCall",
"src": "20457:30:18"
},
"nodeType": "YulIf",
"src": "20454:117:18"
},
{
"nodeType": "YulAssignment",
"src": "20585:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "20645:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "20656:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20641:3:18"
},
"nodeType": "YulFunctionCall",
"src": "20641:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "20665:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "20595:45:18"
},
"nodeType": "YulFunctionCall",
"src": "20595:78:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "20585:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "19891:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "19902:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "19914:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "19922:6:18",
"type": ""
}
],
"src": "19796:894:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20770:40:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "20781:22:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20797:5:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "20791:5:18"
},
"nodeType": "YulFunctionCall",
"src": "20791:12:18"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "20781:6:18"
}
]
}
]
},
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "20753:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "20763:6:18",
"type": ""
}
],
"src": "20696:114:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20927:73:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20944:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "20949:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "20937:6:18"
},
"nodeType": "YulFunctionCall",
"src": "20937:19:18"
},
"nodeType": "YulExpressionStatement",
"src": "20937:19:18"
},
{
"nodeType": "YulAssignment",
"src": "20965:29:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20984:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20989:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20980:3:18"
},
"nodeType": "YulFunctionCall",
"src": "20980:14:18"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "20965:11:18"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "20899:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "20904:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "20915:11:18",
"type": ""
}
],
"src": "20816:184:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21078:60:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "21088:11:18",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "21096:3:18"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "21088:4:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "21109:22:18",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "21121:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21126:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "21117:3:18"
},
"nodeType": "YulFunctionCall",
"src": "21117:14:18"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "21109:4:18"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "21065:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "21073:4:18",
"type": ""
}
],
"src": "21006:132:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21199:53:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "21216:3:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "21239:5:18"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "21221:17:18"
},
"nodeType": "YulFunctionCall",
"src": "21221:24:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "21209:6:18"
},
"nodeType": "YulFunctionCall",
"src": "21209:37:18"
},
"nodeType": "YulExpressionStatement",
"src": "21209:37:18"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "21187:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "21194:3:18",
"type": ""
}
],
"src": "21144:108:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21338:99:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "21382:6:18"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "21390:3:18"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "21348:33:18"
},
"nodeType": "YulFunctionCall",
"src": "21348:46:18"
},
"nodeType": "YulExpressionStatement",
"src": "21348:46:18"
},
{
"nodeType": "YulAssignment",
"src": "21403:28:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "21421:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21426:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "21417:3:18"
},
"nodeType": "YulFunctionCall",
"src": "21417:14:18"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "21403:10:18"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "21311:6:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "21319:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "21327:10:18",
"type": ""
}
],
"src": "21258:179:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21518:38:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "21528:22:18",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "21540:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "21545:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "21536:3:18"
},
"nodeType": "YulFunctionCall",
"src": "21536:14:18"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "21528:4:18"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "21505:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "21513:4:18",
"type": ""
}
],
"src": "21443:113:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "21716:608:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "21726:68:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "21788:5:18"
}
],
"functionName": {
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "21740:47:18"
},
"nodeType": "YulFunctionCall",
"src": "21740:54:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "21730:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "21803:93:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "21884:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "21889:6:18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "21810:73:18"
},
"nodeType": "YulFunctionCall",
"src": "21810:86:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "21803:3:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "21905:71:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "21970:5:18"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "21920:49:18"
},
"nodeType": "YulFunctionCall",
"src": "21920:56:18"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "21909:7:18",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "21985:21:18",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "21999:7:18"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "21989:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "22075:224:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "22089:34:18",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "22116:6:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "22110:5:18"
},
"nodeType": "YulFunctionCall",
"src": "22110:13:18"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "22093:13:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "22136:70:18",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "22187:13:18"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "22202:3:18"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "22143:43:18"
},
"nodeType": "YulFunctionCall",
"src": "22143:63:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "22136:3:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "22219:70:18",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "22282:6:18"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "22229:52:18"
},
"nodeType": "YulFunctionCall",
"src": "22229:60:18"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "22219:6:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "22037:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "22040:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "22034:2:18"
},
"nodeType": "YulFunctionCall",
"src": "22034:13:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "22048:18:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "22050:14:18",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "22059:1:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22062:1:18",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22055:3:18"
},
"nodeType": "YulFunctionCall",
"src": "22055:9:18"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "22050:1:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "22019:14:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "22021:10:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "22030:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "22025:1:18",
"type": ""
}
]
}
]
},
"src": "22015:284:18"
},
{
"nodeType": "YulAssignment",
"src": "22308:10:18",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "22315:3:18"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "22308:3:18"
}
]
}
]
},
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "21695:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "21702:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "21711:3:18",
"type": ""
}
],
"src": "21592:732:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "22478:225:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "22488:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "22500:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22511:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22496:3:18"
},
"nodeType": "YulFunctionCall",
"src": "22496:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "22488:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "22535:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22546:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22531:3:18"
},
"nodeType": "YulFunctionCall",
"src": "22531:17:18"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "22554:4:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "22560:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "22550:3:18"
},
"nodeType": "YulFunctionCall",
"src": "22550:20:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "22524:6:18"
},
"nodeType": "YulFunctionCall",
"src": "22524:47:18"
},
"nodeType": "YulExpressionStatement",
"src": "22524:47:18"
},
{
"nodeType": "YulAssignment",
"src": "22580:116:18",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "22682:6:18"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "22691:4:18"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "22588:93:18"
},
"nodeType": "YulFunctionCall",
"src": "22588:108:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "22580:4:18"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "22450:9:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "22462:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "22473:4:18",
"type": ""
}
],
"src": "22330:373:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "22807:124:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "22817:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "22829:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22840:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22825:3:18"
},
"nodeType": "YulFunctionCall",
"src": "22825:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "22817:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "22897:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "22910:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "22921:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "22906:3:18"
},
"nodeType": "YulFunctionCall",
"src": "22906:17:18"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "22853:43:18"
},
"nodeType": "YulFunctionCall",
"src": "22853:71:18"
},
"nodeType": "YulExpressionStatement",
"src": "22853:71:18"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "22779:9:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "22791:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "22802:4:18",
"type": ""
}
],
"src": "22709:222:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "23223:1841:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "23270:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "23272:77:18"
},
"nodeType": "YulFunctionCall",
"src": "23272:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "23272:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "23244:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23253:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "23240:3:18"
},
"nodeType": "YulFunctionCall",
"src": "23240:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23265:3:18",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "23236:3:18"
},
"nodeType": "YulFunctionCall",
"src": "23236:33:18"
},
"nodeType": "YulIf",
"src": "23233:120:18"
},
{
"nodeType": "YulBlock",
"src": "23363:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "23378:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "23392:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "23382:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "23407:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23442:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "23453:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23438:3:18"
},
"nodeType": "YulFunctionCall",
"src": "23438:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "23462:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "23417:20:18"
},
"nodeType": "YulFunctionCall",
"src": "23417:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "23407:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "23490:303:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "23505:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23536:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23547:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23532:3:18"
},
"nodeType": "YulFunctionCall",
"src": "23532:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "23519:12:18"
},
"nodeType": "YulFunctionCall",
"src": "23519:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "23509:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "23598:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "23600:77:18"
},
"nodeType": "YulFunctionCall",
"src": "23600:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "23600:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "23570:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23578:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "23567:2:18"
},
"nodeType": "YulFunctionCall",
"src": "23567:30:18"
},
"nodeType": "YulIf",
"src": "23564:117:18"
},
{
"nodeType": "YulAssignment",
"src": "23695:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23755:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "23766:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23751:3:18"
},
"nodeType": "YulFunctionCall",
"src": "23751:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "23775:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "23705:45:18"
},
"nodeType": "YulFunctionCall",
"src": "23705:78:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "23695:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "23803:303:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "23818:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "23849:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23860:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "23845:3:18"
},
"nodeType": "YulFunctionCall",
"src": "23845:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "23832:12:18"
},
"nodeType": "YulFunctionCall",
"src": "23832:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "23822:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "23911:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "23913:77:18"
},
"nodeType": "YulFunctionCall",
"src": "23913:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "23913:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "23883:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "23891:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "23880:2:18"
},
"nodeType": "YulFunctionCall",
"src": "23880:30:18"
},
"nodeType": "YulIf",
"src": "23877:117:18"
},
{
"nodeType": "YulAssignment",
"src": "24008:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24068:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "24079:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24064:3:18"
},
"nodeType": "YulFunctionCall",
"src": "24064:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "24088:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "24018:45:18"
},
"nodeType": "YulFunctionCall",
"src": "24018:78:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "24008:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "24116:313:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "24131:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24162:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24173:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24158:3:18"
},
"nodeType": "YulFunctionCall",
"src": "24158:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "24145:12:18"
},
"nodeType": "YulFunctionCall",
"src": "24145:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "24135:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "24224:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "24226:77:18"
},
"nodeType": "YulFunctionCall",
"src": "24226:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "24226:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "24196:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24204:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "24193:2:18"
},
"nodeType": "YulFunctionCall",
"src": "24193:30:18"
},
"nodeType": "YulIf",
"src": "24190:117:18"
},
{
"nodeType": "YulAssignment",
"src": "24321:98:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24391:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "24402:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24387:3:18"
},
"nodeType": "YulFunctionCall",
"src": "24387:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "24411:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "24331:55:18"
},
"nodeType": "YulFunctionCall",
"src": "24331:88:18"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "24321:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "24439:304:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "24454:47:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24485:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24496:3:18",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24481:3:18"
},
"nodeType": "YulFunctionCall",
"src": "24481:19:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "24468:12:18"
},
"nodeType": "YulFunctionCall",
"src": "24468:33:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "24458:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "24548:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "24550:77:18"
},
"nodeType": "YulFunctionCall",
"src": "24550:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "24550:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "24520:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24528:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "24517:2:18"
},
"nodeType": "YulFunctionCall",
"src": "24517:30:18"
},
"nodeType": "YulIf",
"src": "24514:117:18"
},
{
"nodeType": "YulAssignment",
"src": "24645:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24705:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "24716:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24701:3:18"
},
"nodeType": "YulFunctionCall",
"src": "24701:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "24725:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "24655:45:18"
},
"nodeType": "YulFunctionCall",
"src": "24655:78:18"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "24645:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "24753:304:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "24768:47:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "24799:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24810:3:18",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "24795:3:18"
},
"nodeType": "YulFunctionCall",
"src": "24795:19:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "24782:12:18"
},
"nodeType": "YulFunctionCall",
"src": "24782:33:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "24772:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "24862:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "24864:77:18"
},
"nodeType": "YulFunctionCall",
"src": "24864:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "24864:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "24834:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "24842:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "24831:2:18"
},
"nodeType": "YulFunctionCall",
"src": "24831:30:18"
},
"nodeType": "YulIf",
"src": "24828:117:18"
},
{
"nodeType": "YulAssignment",
"src": "24959:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "25019:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "25030:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "25015:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25015:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "25039:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "24969:45:18"
},
"nodeType": "YulFunctionCall",
"src": "24969:78:18"
},
"variableNames": [
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "24959:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "23153:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "23164:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "23176:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "23184:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "23192:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "23200:6:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "23208:6:18",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "23216:6:18",
"type": ""
}
],
"src": "22937:2127:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "25163:561:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "25209:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "25211:77:18"
},
"nodeType": "YulFunctionCall",
"src": "25211:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "25211:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "25184:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "25193:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "25180:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25180:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25205:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "25176:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25176:32:18"
},
"nodeType": "YulIf",
"src": "25173:119:18"
},
{
"nodeType": "YulBlock",
"src": "25302:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "25317:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "25331:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "25321:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "25346:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "25381:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "25392:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "25377:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25377:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "25401:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "25356:20:18"
},
"nodeType": "YulFunctionCall",
"src": "25356:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "25346:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "25429:288:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "25444:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "25475:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25486:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "25471:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25471:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "25458:12:18"
},
"nodeType": "YulFunctionCall",
"src": "25458:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "25448:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "25537:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "25539:77:18"
},
"nodeType": "YulFunctionCall",
"src": "25539:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "25539:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "25509:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25517:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "25506:2:18"
},
"nodeType": "YulFunctionCall",
"src": "25506:30:18"
},
"nodeType": "YulIf",
"src": "25503:117:18"
},
{
"nodeType": "YulAssignment",
"src": "25634:73:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "25679:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "25690:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "25675:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25675:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "25699:7:18"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "25644:30:18"
},
"nodeType": "YulFunctionCall",
"src": "25644:63:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "25634:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "25125:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "25136:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "25148:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "25156:6:18",
"type": ""
}
],
"src": "25070:654:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "25891:1076:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "25938:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "25940:77:18"
},
"nodeType": "YulFunctionCall",
"src": "25940:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "25940:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "25912:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "25921:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "25908:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25908:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25933:3:18",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "25904:3:18"
},
"nodeType": "YulFunctionCall",
"src": "25904:33:18"
},
"nodeType": "YulIf",
"src": "25901:120:18"
},
{
"nodeType": "YulBlock",
"src": "26031:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "26046:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "26060:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "26050:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "26075:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "26110:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "26121:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26106:3:18"
},
"nodeType": "YulFunctionCall",
"src": "26106:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "26130:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "26085:20:18"
},
"nodeType": "YulFunctionCall",
"src": "26085:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "26075:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "26158:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "26173:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "26187:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "26177:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "26203:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "26238:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "26249:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26234:3:18"
},
"nodeType": "YulFunctionCall",
"src": "26234:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "26258:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "26213:20:18"
},
"nodeType": "YulFunctionCall",
"src": "26213:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "26203:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "26286:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "26301:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "26315:2:18",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "26305:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "26331:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "26366:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "26377:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26362:3:18"
},
"nodeType": "YulFunctionCall",
"src": "26362:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "26386:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "26341:20:18"
},
"nodeType": "YulFunctionCall",
"src": "26341:53:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "26331:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "26414:288:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "26429:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "26460:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26471:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26456:3:18"
},
"nodeType": "YulFunctionCall",
"src": "26456:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "26443:12:18"
},
"nodeType": "YulFunctionCall",
"src": "26443:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "26433:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "26522:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "26524:77:18"
},
"nodeType": "YulFunctionCall",
"src": "26524:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "26524:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "26494:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "26502:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "26491:2:18"
},
"nodeType": "YulFunctionCall",
"src": "26491:30:18"
},
"nodeType": "YulIf",
"src": "26488:117:18"
},
{
"nodeType": "YulAssignment",
"src": "26619:73:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "26664:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "26675:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26660:3:18"
},
"nodeType": "YulFunctionCall",
"src": "26660:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "26684:7:18"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "26629:30:18"
},
"nodeType": "YulFunctionCall",
"src": "26629:63:18"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "26619:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "26712:119:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "26727:17:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "26741:3:18",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "26731:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "26758:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "26793:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "26804:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26789:3:18"
},
"nodeType": "YulFunctionCall",
"src": "26789:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "26813:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "26768:20:18"
},
"nodeType": "YulFunctionCall",
"src": "26768:53:18"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "26758:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "26841:119:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "26856:17:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "26870:3:18",
"type": "",
"value": "160"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "26860:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "26887:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "26922:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "26933:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "26918:3:18"
},
"nodeType": "YulFunctionCall",
"src": "26918:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "26942:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "26897:20:18"
},
"nodeType": "YulFunctionCall",
"src": "26897:53:18"
},
"variableNames": [
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "26887:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256t_string_memory_ptrt_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "25821:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "25832:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "25844:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "25852:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "25860:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "25868:6:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "25876:6:18",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "25884:6:18",
"type": ""
}
],
"src": "25730:1237:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "27134:1076:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "27181:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "27183:77:18"
},
"nodeType": "YulFunctionCall",
"src": "27183:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "27183:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "27155:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27164:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "27151:3:18"
},
"nodeType": "YulFunctionCall",
"src": "27151:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27176:3:18",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "27147:3:18"
},
"nodeType": "YulFunctionCall",
"src": "27147:33:18"
},
"nodeType": "YulIf",
"src": "27144:120:18"
},
{
"nodeType": "YulBlock",
"src": "27274:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "27289:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "27303:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "27293:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "27318:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27353:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "27364:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27349:3:18"
},
"nodeType": "YulFunctionCall",
"src": "27349:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "27373:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "27328:20:18"
},
"nodeType": "YulFunctionCall",
"src": "27328:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "27318:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "27401:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "27416:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "27430:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "27420:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "27446:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27481:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "27492:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27477:3:18"
},
"nodeType": "YulFunctionCall",
"src": "27477:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "27501:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "27456:20:18"
},
"nodeType": "YulFunctionCall",
"src": "27456:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "27446:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "27529:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "27544:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "27558:2:18",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "27548:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "27574:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27609:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "27620:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27605:3:18"
},
"nodeType": "YulFunctionCall",
"src": "27605:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "27629:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "27584:20:18"
},
"nodeType": "YulFunctionCall",
"src": "27584:53:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "27574:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "27657:288:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "27672:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27703:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27714:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27699:3:18"
},
"nodeType": "YulFunctionCall",
"src": "27699:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "27686:12:18"
},
"nodeType": "YulFunctionCall",
"src": "27686:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "27676:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "27765:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "27767:77:18"
},
"nodeType": "YulFunctionCall",
"src": "27767:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "27767:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "27737:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "27745:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "27734:2:18"
},
"nodeType": "YulFunctionCall",
"src": "27734:30:18"
},
"nodeType": "YulIf",
"src": "27731:117:18"
},
{
"nodeType": "YulAssignment",
"src": "27862:73:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "27907:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "27918:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "27903:3:18"
},
"nodeType": "YulFunctionCall",
"src": "27903:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "27927:7:18"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "27872:30:18"
},
"nodeType": "YulFunctionCall",
"src": "27872:63:18"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "27862:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "27955:119:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "27970:17:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "27984:3:18",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "27974:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "28001:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28036:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "28047:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28032:3:18"
},
"nodeType": "YulFunctionCall",
"src": "28032:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "28056:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "28011:20:18"
},
"nodeType": "YulFunctionCall",
"src": "28011:53:18"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "28001:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "28084:119:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "28099:17:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "28113:3:18",
"type": "",
"value": "160"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "28103:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "28130:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28165:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "28176:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28161:3:18"
},
"nodeType": "YulFunctionCall",
"src": "28161:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "28185:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "28140:20:18"
},
"nodeType": "YulFunctionCall",
"src": "28140:53:18"
},
"variableNames": [
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "28130:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_uint256t_string_memory_ptrt_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "27064:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "27075:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "27087:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "27095:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "27103:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "27111:6:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "27119:6:18",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "27127:6:18",
"type": ""
}
],
"src": "26973:1237:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "28256:76:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "28310:16:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28319:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28322:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "28312:6:18"
},
"nodeType": "YulFunctionCall",
"src": "28312:12:18"
},
"nodeType": "YulExpressionStatement",
"src": "28312:12:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "28279:5:18"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "28301:5:18"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "28286:14:18"
},
"nodeType": "YulFunctionCall",
"src": "28286:21:18"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "28276:2:18"
},
"nodeType": "YulFunctionCall",
"src": "28276:32:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "28269:6:18"
},
"nodeType": "YulFunctionCall",
"src": "28269:40:18"
},
"nodeType": "YulIf",
"src": "28266:60:18"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "28249:5:18",
"type": ""
}
],
"src": "28216:116:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "28387:84:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "28397:29:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "28419:6:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "28406:12:18"
},
"nodeType": "YulFunctionCall",
"src": "28406:20:18"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "28397:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "28459:5:18"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "28435:23:18"
},
"nodeType": "YulFunctionCall",
"src": "28435:30:18"
},
"nodeType": "YulExpressionStatement",
"src": "28435:30:18"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "28365:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "28373:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "28381:5:18",
"type": ""
}
],
"src": "28338:133:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "28557:388:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "28603:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "28605:77:18"
},
"nodeType": "YulFunctionCall",
"src": "28605:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "28605:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "28578:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28587:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "28574:3:18"
},
"nodeType": "YulFunctionCall",
"src": "28574:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "28599:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "28570:3:18"
},
"nodeType": "YulFunctionCall",
"src": "28570:32:18"
},
"nodeType": "YulIf",
"src": "28567:119:18"
},
{
"nodeType": "YulBlock",
"src": "28696:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "28711:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "28725:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "28715:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "28740:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28775:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "28786:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28771:3:18"
},
"nodeType": "YulFunctionCall",
"src": "28771:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "28795:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "28750:20:18"
},
"nodeType": "YulFunctionCall",
"src": "28750:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "28740:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "28823:115:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "28838:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "28852:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "28842:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "28868:60:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "28900:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "28911:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "28896:3:18"
},
"nodeType": "YulFunctionCall",
"src": "28896:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "28920:7:18"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "28878:17:18"
},
"nodeType": "YulFunctionCall",
"src": "28878:50:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "28868:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "28519:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "28530:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "28542:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "28550:6:18",
"type": ""
}
],
"src": "28477:468:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "29237:1841:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "29284:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "29286:77:18"
},
"nodeType": "YulFunctionCall",
"src": "29286:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "29286:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "29258:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "29267:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "29254:3:18"
},
"nodeType": "YulFunctionCall",
"src": "29254:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29279:3:18",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "29250:3:18"
},
"nodeType": "YulFunctionCall",
"src": "29250:33:18"
},
"nodeType": "YulIf",
"src": "29247:120:18"
},
{
"nodeType": "YulBlock",
"src": "29377:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "29392:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "29406:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "29396:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "29421:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "29456:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "29467:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "29452:3:18"
},
"nodeType": "YulFunctionCall",
"src": "29452:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "29476:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "29431:20:18"
},
"nodeType": "YulFunctionCall",
"src": "29431:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "29421:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "29504:303:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "29519:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "29550:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29561:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "29546:3:18"
},
"nodeType": "YulFunctionCall",
"src": "29546:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "29533:12:18"
},
"nodeType": "YulFunctionCall",
"src": "29533:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "29523:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "29612:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "29614:77:18"
},
"nodeType": "YulFunctionCall",
"src": "29614:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "29614:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "29584:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29592:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "29581:2:18"
},
"nodeType": "YulFunctionCall",
"src": "29581:30:18"
},
"nodeType": "YulIf",
"src": "29578:117:18"
},
{
"nodeType": "YulAssignment",
"src": "29709:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "29769:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "29780:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "29765:3:18"
},
"nodeType": "YulFunctionCall",
"src": "29765:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "29789:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "29719:45:18"
},
"nodeType": "YulFunctionCall",
"src": "29719:78:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "29709:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "29817:303:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "29832:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "29863:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29874:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "29859:3:18"
},
"nodeType": "YulFunctionCall",
"src": "29859:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "29846:12:18"
},
"nodeType": "YulFunctionCall",
"src": "29846:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "29836:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "29925:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "29927:77:18"
},
"nodeType": "YulFunctionCall",
"src": "29927:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "29927:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "29897:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "29905:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "29894:2:18"
},
"nodeType": "YulFunctionCall",
"src": "29894:30:18"
},
"nodeType": "YulIf",
"src": "29891:117:18"
},
{
"nodeType": "YulAssignment",
"src": "30022:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30082:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "30093:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30078:3:18"
},
"nodeType": "YulFunctionCall",
"src": "30078:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "30102:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "30032:45:18"
},
"nodeType": "YulFunctionCall",
"src": "30032:78:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "30022:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "30130:313:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "30145:46:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30176:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30187:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30172:3:18"
},
"nodeType": "YulFunctionCall",
"src": "30172:18:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "30159:12:18"
},
"nodeType": "YulFunctionCall",
"src": "30159:32:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "30149:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "30238:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "30240:77:18"
},
"nodeType": "YulFunctionCall",
"src": "30240:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "30240:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "30210:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30218:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "30207:2:18"
},
"nodeType": "YulFunctionCall",
"src": "30207:30:18"
},
"nodeType": "YulIf",
"src": "30204:117:18"
},
{
"nodeType": "YulAssignment",
"src": "30335:98:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30405:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "30416:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30401:3:18"
},
"nodeType": "YulFunctionCall",
"src": "30401:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "30425:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "30345:55:18"
},
"nodeType": "YulFunctionCall",
"src": "30345:88:18"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "30335:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "30453:304:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "30468:47:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30499:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30510:3:18",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30495:3:18"
},
"nodeType": "YulFunctionCall",
"src": "30495:19:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "30482:12:18"
},
"nodeType": "YulFunctionCall",
"src": "30482:33:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "30472:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "30562:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "30564:77:18"
},
"nodeType": "YulFunctionCall",
"src": "30564:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "30564:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "30534:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30542:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "30531:2:18"
},
"nodeType": "YulFunctionCall",
"src": "30531:30:18"
},
"nodeType": "YulIf",
"src": "30528:117:18"
},
{
"nodeType": "YulAssignment",
"src": "30659:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30719:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "30730:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30715:3:18"
},
"nodeType": "YulFunctionCall",
"src": "30715:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "30739:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "30669:45:18"
},
"nodeType": "YulFunctionCall",
"src": "30669:78:18"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "30659:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "30767:304:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "30782:47:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "30813:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30824:3:18",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "30809:3:18"
},
"nodeType": "YulFunctionCall",
"src": "30809:19:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "30796:12:18"
},
"nodeType": "YulFunctionCall",
"src": "30796:33:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "30786:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "30876:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "30878:77:18"
},
"nodeType": "YulFunctionCall",
"src": "30878:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "30878:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "30848:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "30856:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "30845:2:18"
},
"nodeType": "YulFunctionCall",
"src": "30845:30:18"
},
"nodeType": "YulIf",
"src": "30842:117:18"
},
{
"nodeType": "YulAssignment",
"src": "30973:88:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31033:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "31044:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31029:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31029:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "31053:7:18"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "30983:45:18"
},
"nodeType": "YulFunctionCall",
"src": "30983:78:18"
},
"variableNames": [
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "30973:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "29167:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "29178:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "29190:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "29198:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "29206:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "29214:6:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "29222:6:18",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "29230:6:18",
"type": ""
}
],
"src": "28951:2127:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "31184:519:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "31230:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "31232:77:18"
},
"nodeType": "YulFunctionCall",
"src": "31232:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "31232:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "31205:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31214:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "31201:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31201:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31226:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "31197:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31197:32:18"
},
"nodeType": "YulIf",
"src": "31194:119:18"
},
{
"nodeType": "YulBlock",
"src": "31323:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "31338:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "31352:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "31342:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "31367:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31402:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "31413:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31398:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31398:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "31422:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "31377:20:18"
},
"nodeType": "YulFunctionCall",
"src": "31377:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "31367:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "31450:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "31465:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "31479:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "31469:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "31495:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31530:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "31541:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31526:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31526:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "31550:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "31505:20:18"
},
"nodeType": "YulFunctionCall",
"src": "31505:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "31495:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "31578:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "31593:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "31607:2:18",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "31597:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "31623:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31658:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "31669:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "31654:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31654:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "31678:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "31633:20:18"
},
"nodeType": "YulFunctionCall",
"src": "31633:53:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "31623:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "31138:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "31149:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "31161:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "31169:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "31177:6:18",
"type": ""
}
],
"src": "31084:619:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "31792:391:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "31838:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "31840:77:18"
},
"nodeType": "YulFunctionCall",
"src": "31840:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "31840:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "31813:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "31822:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "31809:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31809:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "31834:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "31805:3:18"
},
"nodeType": "YulFunctionCall",
"src": "31805:32:18"
},
"nodeType": "YulIf",
"src": "31802:119:18"
},
{
"nodeType": "YulBlock",
"src": "31931:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "31946:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "31960:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "31950:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "31975:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32010:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "32021:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32006:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32006:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "32030:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "31985:20:18"
},
"nodeType": "YulFunctionCall",
"src": "31985:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "31975:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "32058:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "32073:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "32087:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "32077:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "32103:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32138:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "32149:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32134:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32134:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "32158:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "32113:20:18"
},
"nodeType": "YulFunctionCall",
"src": "32113:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "32103:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "31754:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "31765:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "31777:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "31785:6:18",
"type": ""
}
],
"src": "31709:474:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "32332:946:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "32379:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "32381:77:18"
},
"nodeType": "YulFunctionCall",
"src": "32381:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "32381:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "32353:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32362:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "32349:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32349:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "32374:3:18",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "32345:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32345:33:18"
},
"nodeType": "YulIf",
"src": "32342:120:18"
},
{
"nodeType": "YulBlock",
"src": "32472:117:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "32487:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "32501:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "32491:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "32516:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32551:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "32562:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32547:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32547:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "32571:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "32526:20:18"
},
"nodeType": "YulFunctionCall",
"src": "32526:53:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "32516:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "32599:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "32614:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "32628:2:18",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "32618:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "32644:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32679:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "32690:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32675:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32675:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "32699:7:18"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "32654:20:18"
},
"nodeType": "YulFunctionCall",
"src": "32654:53:18"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "32644:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "32727:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "32742:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "32756:2:18",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "32746:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "32772:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32807:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "32818:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32803:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32803:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "32827:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "32782:20:18"
},
"nodeType": "YulFunctionCall",
"src": "32782:53:18"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "32772:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "32855:118:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "32870:16:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "32884:2:18",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "32874:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "32900:63:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "32935:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "32946:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "32931:3:18"
},
"nodeType": "YulFunctionCall",
"src": "32931:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "32955:7:18"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "32910:20:18"
},
"nodeType": "YulFunctionCall",
"src": "32910:53:18"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "32900:6:18"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "32983:288:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "32998:47:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "33029:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33040:3:18",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33025:3:18"
},
"nodeType": "YulFunctionCall",
"src": "33025:19:18"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "33012:12:18"
},
"nodeType": "YulFunctionCall",
"src": "33012:33:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "33002:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "33092:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "33094:77:18"
},
"nodeType": "YulFunctionCall",
"src": "33094:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "33094:79:18"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "33064:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33072:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "33061:2:18"
},
"nodeType": "YulFunctionCall",
"src": "33061:30:18"
},
"nodeType": "YulIf",
"src": "33058:117:18"
},
{
"nodeType": "YulAssignment",
"src": "33189:72:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "33233:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "33244:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33229:3:18"
},
"nodeType": "YulFunctionCall",
"src": "33229:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "33253:7:18"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "33199:29:18"
},
"nodeType": "YulFunctionCall",
"src": "33199:62:18"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "33189:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "32270:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "32281:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "32293:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "32301:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "32309:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "32317:6:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "32325:6:18",
"type": ""
}
],
"src": "32189:1089:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "33390:124:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "33412:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33420:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33408:3:18"
},
"nodeType": "YulFunctionCall",
"src": "33408:14:18"
},
{
"hexValue": "455243313135353a2062616c616e636520717565727920666f7220746865207a",
"kind": "string",
"nodeType": "YulLiteral",
"src": "33424:34:18",
"type": "",
"value": "ERC1155: balance query for the z"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "33401:6:18"
},
"nodeType": "YulFunctionCall",
"src": "33401:58:18"
},
"nodeType": "YulExpressionStatement",
"src": "33401:58:18"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "33480:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33488:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33476:3:18"
},
"nodeType": "YulFunctionCall",
"src": "33476:15:18"
},
{
"hexValue": "65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "33493:13:18",
"type": "",
"value": "ero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "33469:6:18"
},
"nodeType": "YulFunctionCall",
"src": "33469:38:18"
},
"nodeType": "YulExpressionStatement",
"src": "33469:38:18"
}
]
},
"name": "store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "33382:6:18",
"type": ""
}
],
"src": "33284:230:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "33666:220:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "33676:74:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "33742:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33747:2:18",
"type": "",
"value": "43"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "33683:58:18"
},
"nodeType": "YulFunctionCall",
"src": "33683:67:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "33676:3:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "33848:3:18"
}
],
"functionName": {
"name": "store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9",
"nodeType": "YulIdentifier",
"src": "33759:88:18"
},
"nodeType": "YulFunctionCall",
"src": "33759:93:18"
},
"nodeType": "YulExpressionStatement",
"src": "33759:93:18"
},
{
"nodeType": "YulAssignment",
"src": "33861:19:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "33872:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "33877:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "33868:3:18"
},
"nodeType": "YulFunctionCall",
"src": "33868:12:18"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "33861:3:18"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "33654:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "33662:3:18",
"type": ""
}
],
"src": "33520:366:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "34063:248:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "34073:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34085:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34096:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34081:3:18"
},
"nodeType": "YulFunctionCall",
"src": "34081:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34073:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34120:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34131:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34116:3:18"
},
"nodeType": "YulFunctionCall",
"src": "34116:17:18"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34139:4:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "34145:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "34135:3:18"
},
"nodeType": "YulFunctionCall",
"src": "34135:20:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "34109:6:18"
},
"nodeType": "YulFunctionCall",
"src": "34109:47:18"
},
"nodeType": "YulExpressionStatement",
"src": "34109:47:18"
},
{
"nodeType": "YulAssignment",
"src": "34165:139:18",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34299:4:18"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "34173:124:18"
},
"nodeType": "YulFunctionCall",
"src": "34173:131:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "34165:4:18"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "34043:9:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "34058:4:18",
"type": ""
}
],
"src": "33892:419:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "34375:40:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "34386:22:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "34402:5:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "34396:5:18"
},
"nodeType": "YulFunctionCall",
"src": "34396:12:18"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "34386:6:18"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34358:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "34368:6:18",
"type": ""
}
],
"src": "34317:98:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "34516:73:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34533:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "34538:6:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "34526:6:18"
},
"nodeType": "YulFunctionCall",
"src": "34526:19:18"
},
"nodeType": "YulExpressionStatement",
"src": "34526:19:18"
},
{
"nodeType": "YulAssignment",
"src": "34554:29:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34573:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34578:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34569:3:18"
},
"nodeType": "YulFunctionCall",
"src": "34569:14:18"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "34554:11:18"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "34488:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "34493:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "34504:11:18",
"type": ""
}
],
"src": "34421:168:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "34685:270:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "34695:52:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "34741:5:18"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "34709:31:18"
},
"nodeType": "YulFunctionCall",
"src": "34709:38:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "34699:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "34756:77:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34821:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "34826:6:18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "34763:57:18"
},
"nodeType": "YulFunctionCall",
"src": "34763:70:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34756:3:18"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "34868:5:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "34875:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34864:3:18"
},
"nodeType": "YulFunctionCall",
"src": "34864:16:18"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34882:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "34887:6:18"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "34842:21:18"
},
"nodeType": "YulFunctionCall",
"src": "34842:52:18"
},
"nodeType": "YulExpressionStatement",
"src": "34842:52:18"
},
{
"nodeType": "YulAssignment",
"src": "34903:46:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "34914:3:18"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "34941:6:18"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "34919:21:18"
},
"nodeType": "YulFunctionCall",
"src": "34919:29:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "34910:3:18"
},
"nodeType": "YulFunctionCall",
"src": "34910:39:18"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "34903:3:18"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34666:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "34673:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "34681:3:18",
"type": ""
}
],
"src": "34595:360:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "35189:523:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "35199:27:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35211:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35222:3:18",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35207:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35207:19:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35199:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "35280:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35293:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35304:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35289:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35289:17:18"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "35236:43:18"
},
"nodeType": "YulFunctionCall",
"src": "35236:71:18"
},
"nodeType": "YulExpressionStatement",
"src": "35236:71:18"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "35361:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35374:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35385:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35370:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35370:18:18"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "35317:43:18"
},
"nodeType": "YulFunctionCall",
"src": "35317:72:18"
},
"nodeType": "YulExpressionStatement",
"src": "35317:72:18"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "35443:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35456:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35467:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35452:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35452:18:18"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "35399:43:18"
},
"nodeType": "YulFunctionCall",
"src": "35399:72:18"
},
"nodeType": "YulExpressionStatement",
"src": "35399:72:18"
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "35525:6:18"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35538:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35549:2:18",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35534:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35534:18:18"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "35481:43:18"
},
"nodeType": "YulFunctionCall",
"src": "35481:72:18"
},
"nodeType": "YulExpressionStatement",
"src": "35481:72:18"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35574:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35585:3:18",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "35570:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35570:19:18"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35595:4:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35601:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "35591:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35591:20:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "35563:6:18"
},
"nodeType": "YulFunctionCall",
"src": "35563:49:18"
},
"nodeType": "YulExpressionStatement",
"src": "35563:49:18"
},
{
"nodeType": "YulAssignment",
"src": "35621:84:18",
"value": {
"arguments": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "35691:6:18"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35700:4:18"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "35629:61:18"
},
"nodeType": "YulFunctionCall",
"src": "35629:76:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "35621:4:18"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "35129:9:18",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "35141:6:18",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "35149:6:18",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "35157:6:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "35165:6:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "35173:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "35184:4:18",
"type": ""
}
],
"src": "34961:751:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "35780:79:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "35790:22:18",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "35805:6:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "35799:5:18"
},
"nodeType": "YulFunctionCall",
"src": "35799:13:18"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "35790:5:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "35847:5:18"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "35821:25:18"
},
"nodeType": "YulFunctionCall",
"src": "35821:32:18"
},
"nodeType": "YulExpressionStatement",
"src": "35821:32:18"
}
]
},
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "35758:6:18",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "35766:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "35774:5:18",
"type": ""
}
],
"src": "35718:141:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "35941:273:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35987:83:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "35989:77:18"
},
"nodeType": "YulFunctionCall",
"src": "35989:79:18"
},
"nodeType": "YulExpressionStatement",
"src": "35989:79:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "35962:7:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "35971:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "35958:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35958:23:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "35983:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "35954:3:18"
},
"nodeType": "YulFunctionCall",
"src": "35954:32:18"
},
"nodeType": "YulIf",
"src": "35951:119:18"
},
{
"nodeType": "YulBlock",
"src": "36080:127:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "36095:15:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "36109:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "36099:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "36124:73:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "36169:9:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "36180:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36165:3:18"
},
"nodeType": "YulFunctionCall",
"src": "36165:22:18"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "36189:7:18"
}
],
"functionName": {
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulIdentifier",
"src": "36134:30:18"
},
"nodeType": "YulFunctionCall",
"src": "36134:63:18"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "36124:6:18"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "35911:9:18",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "35922:7:18",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "35934:6:18",
"type": ""
}
],
"src": "35865:349:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "36273:53:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "36283:36:18",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36308:3:18",
"type": "",
"value": "224"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "36313:5:18"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "36304:3:18"
},
"nodeType": "YulFunctionCall",
"src": "36304:15:18"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "36283:8:18"
}
]
}
]
},
"name": "shift_right_224_unsigned",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "36254:5:18",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "36264:8:18",
"type": ""
}
],
"src": "36220:106:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "36371:144:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "36408:101:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36437:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36440:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36443:1:18",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "returndatacopy",
"nodeType": "YulIdentifier",
"src": "36422:14:18"
},
"nodeType": "YulFunctionCall",
"src": "36422:23:18"
},
"nodeType": "YulExpressionStatement",
"src": "36422:23:18"
},
{
"nodeType": "YulAssignment",
"src": "36458:41:18",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36496:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "36490:5:18"
},
"nodeType": "YulFunctionCall",
"src": "36490:8:18"
}
],
"functionName": {
"name": "shift_right_224_unsigned",
"nodeType": "YulIdentifier",
"src": "36465:24:18"
},
"nodeType": "YulFunctionCall",
"src": "36465:34:18"
},
"variableNames": [
{
"name": "sig",
"nodeType": "YulIdentifier",
"src": "36458:3:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "36387:14:18"
},
"nodeType": "YulFunctionCall",
"src": "36387:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36405:1:18",
"type": "",
"value": "3"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "36384:2:18"
},
"nodeType": "YulFunctionCall",
"src": "36384:23:18"
},
"nodeType": "YulIf",
"src": "36381:128:18"
}
]
},
"name": "return_data_selector",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "sig",
"nodeType": "YulTypedName",
"src": "36367:3:18",
"type": ""
}
],
"src": "36332:183:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "36564:668:18",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "36604:9:18",
"statements": [
{
"nodeType": "YulLeave",
"src": "36606:5:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "36580:14:18"
},
"nodeType": "YulFunctionCall",
"src": "36580:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36598:4:18",
"type": "",
"value": "0x44"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "36577:2:18"
},
"nodeType": "YulFunctionCall",
"src": "36577:26:18"
},
"nodeType": "YulIf",
"src": "36574:39:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "36623:32:18",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "36635:18:18"
},
"nodeType": "YulFunctionCall",
"src": "36635:20:18"
},
"variables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "36627:4:18",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "36679:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36685:1:18",
"type": "",
"value": "4"
},
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "36692:14:18"
},
"nodeType": "YulFunctionCall",
"src": "36692:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36710:1:18",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "36688:3:18"
},
"nodeType": "YulFunctionCall",
"src": "36688:24:18"
}
],
"functionName": {
"name": "returndatacopy",
"nodeType": "YulIdentifier",
"src": "36664:14:18"
},
"nodeType": "YulFunctionCall",
"src": "36664:49:18"
},
"nodeType": "YulExpressionStatement",
"src": "36664:49:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "36723:25:18",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "36743:4:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "36737:5:18"
},
"nodeType": "YulFunctionCall",
"src": "36737:11:18"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "36727:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "36874:29:18",
"statements": [
{
"nodeType": "YulLeave",
"src": "36888:5:18"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "36779:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36787:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "36776:2:18"
},
"nodeType": "YulFunctionCall",
"src": "36776:30:18"
},
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "36827:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36835:4:18",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36823:3:18"
},
"nodeType": "YulFunctionCall",
"src": "36823:17:18"
},
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "36842:14:18"
},
"nodeType": "YulFunctionCall",
"src": "36842:16:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "36820:2:18"
},
"nodeType": "YulFunctionCall",
"src": "36820:39:18"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "36760:2:18"
},
"nodeType": "YulFunctionCall",
"src": "36760:113:18"
},
"nodeType": "YulIf",
"src": "36757:146:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "36913:28:18",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "36928:4:18"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "36934:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "36924:3:18"
},
"nodeType": "YulFunctionCall",
"src": "36924:17:18"
},
"variables": [
{
"name": "msg",
"nodeType": "YulTypedName",
"src": "36917:3:18",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "36950:24:18",
"value": {
"arguments": [
{
"name": "msg",
"nodeType": "YulIdentifier",
"src": "36970:3:18"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "36964:5:18"
},
"nodeType": "YulFunctionCall",
"src": "36964:10:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "36954:6:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "37017:9:18",
"statements": [
{
"nodeType": "YulLeave",
"src": "37019:5:18"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "36989:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "36997:18:18",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "36986:2:18"
},
"nodeType": "YulFunctionCall",
"src": "36986:30:18"
},
"nodeType": "YulIf",
"src": "36983:43:18"
},
{
"nodeType": "YulVariableDeclaration",
"src": "37036:38:18",
"value": {
"arguments": [
{
"arguments": [
{
"name": "msg",
"nodeType": "YulIdentifier",
"src": "37055:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "37060:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37051:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37051:14:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "37067:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37047:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37047:27:18"
},
"variables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "37040:3:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "37131:9:18",
"statements": [
{
"nodeType": "YulLeave",
"src": "37133:5:18"
}
]
},
"condition": {
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "37089:3:18"
},
{
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "37098:4:18"
},
{
"arguments": [
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "37108:14:18"
},
"nodeType": "YulFunctionCall",
"src": "37108:16:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "37126:1:18",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "37104:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37104:24:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37094:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37094:35:18"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "37086:2:18"
},
"nodeType": "YulFunctionCall",
"src": "37086:44:18"
},
"nodeType": "YulIf",
"src": "37083:57:18"
},
{
"expression": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "37170:4:18"
},
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "37180:6:18"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "37192:4:18",
"type": "",
"value": "0x20"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "37198:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37188:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37188:17:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37176:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37176:30:18"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "37150:19:18"
},
"nodeType": "YulFunctionCall",
"src": "37150:57:18"
},
"nodeType": "YulExpressionStatement",
"src": "37150:57:18"
},
{
"nodeType": "YulAssignment",
"src": "37216:10:18",
"value": {
"name": "msg",
"nodeType": "YulIdentifier",
"src": "37223:3:18"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "37216:3:18"
}
]
}
]
},
"name": "try_decode_error_message",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "36560:3:18",
"type": ""
}
],
"src": "36521:711:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "37344:133:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "37366:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "37374:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37362:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37362:14:18"
},
{
"hexValue": "455243313135353a207472616e7366657220746f206e6f6e2045524331313535",
"kind": "string",
"nodeType": "YulLiteral",
"src": "37378:34:18",
"type": "",
"value": "ERC1155: transfer to non ERC1155"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "37355:6:18"
},
"nodeType": "YulFunctionCall",
"src": "37355:58:18"
},
"nodeType": "YulExpressionStatement",
"src": "37355:58:18"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "37434:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "37442:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37430:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37430:15:18"
},
{
"hexValue": "526563656976657220696d706c656d656e746572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "37447:22:18",
"type": "",
"value": "Receiver implementer"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "37423:6:18"
},
"nodeType": "YulFunctionCall",
"src": "37423:47:18"
},
"nodeType": "YulExpressionStatement",
"src": "37423:47:18"
}
]
},
"name": "store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "37336:6:18",
"type": ""
}
],
"src": "37238:239:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "37629:220:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "37639:74:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "37705:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "37710:2:18",
"type": "",
"value": "52"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "37646:58:18"
},
"nodeType": "YulFunctionCall",
"src": "37646:67:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "37639:3:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "37811:3:18"
}
],
"functionName": {
"name": "store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed",
"nodeType": "YulIdentifier",
"src": "37722:88:18"
},
"nodeType": "YulFunctionCall",
"src": "37722:93:18"
},
"nodeType": "YulExpressionStatement",
"src": "37722:93:18"
},
{
"nodeType": "YulAssignment",
"src": "37824:19:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "37835:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "37840:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "37831:3:18"
},
"nodeType": "YulFunctionCall",
"src": "37831:12:18"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "37824:3:18"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "37617:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "37625:3:18",
"type": ""
}
],
"src": "37483:366:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "38026:248:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "38036:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "38048:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "38059:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "38044:3:18"
},
"nodeType": "YulFunctionCall",
"src": "38044:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "38036:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "38083:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "38094:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "38079:3:18"
},
"nodeType": "YulFunctionCall",
"src": "38079:17:18"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "38102:4:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "38108:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "38098:3:18"
},
"nodeType": "YulFunctionCall",
"src": "38098:20:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "38072:6:18"
},
"nodeType": "YulFunctionCall",
"src": "38072:47:18"
},
"nodeType": "YulExpressionStatement",
"src": "38072:47:18"
},
{
"nodeType": "YulAssignment",
"src": "38128:139:18",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "38262:4:18"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "38136:124:18"
},
"nodeType": "YulFunctionCall",
"src": "38136:131:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "38128:4:18"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "38006:9:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "38021:4:18",
"type": ""
}
],
"src": "37855:419:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "38386:121:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "38408:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "38416:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "38404:3:18"
},
"nodeType": "YulFunctionCall",
"src": "38404:14:18"
},
{
"hexValue": "455243313135353a204552433131353552656365697665722072656a65637465",
"kind": "string",
"nodeType": "YulLiteral",
"src": "38420:34:18",
"type": "",
"value": "ERC1155: ERC1155Receiver rejecte"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "38397:6:18"
},
"nodeType": "YulFunctionCall",
"src": "38397:58:18"
},
"nodeType": "YulExpressionStatement",
"src": "38397:58:18"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "38476:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "38484:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "38472:3:18"
},
"nodeType": "YulFunctionCall",
"src": "38472:15:18"
},
{
"hexValue": "6420746f6b656e73",
"kind": "string",
"nodeType": "YulLiteral",
"src": "38489:10:18",
"type": "",
"value": "d tokens"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "38465:6:18"
},
"nodeType": "YulFunctionCall",
"src": "38465:35:18"
},
"nodeType": "YulExpressionStatement",
"src": "38465:35:18"
}
]
},
"name": "store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "38378:6:18",
"type": ""
}
],
"src": "38280:227:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "38659:220:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "38669:74:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "38735:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "38740:2:18",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "38676:58:18"
},
"nodeType": "YulFunctionCall",
"src": "38676:67:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "38669:3:18"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "38841:3:18"
}
],
"functionName": {
"name": "store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503",
"nodeType": "YulIdentifier",
"src": "38752:88:18"
},
"nodeType": "YulFunctionCall",
"src": "38752:93:18"
},
"nodeType": "YulExpressionStatement",
"src": "38752:93:18"
},
{
"nodeType": "YulAssignment",
"src": "38854:19:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "38865:3:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "38870:2:18",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "38861:3:18"
},
"nodeType": "YulFunctionCall",
"src": "38861:12:18"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "38854:3:18"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "38647:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "38655:3:18",
"type": ""
}
],
"src": "38513:366:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "39056:248:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "39066:26:18",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "39078:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39089:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "39074:3:18"
},
"nodeType": "YulFunctionCall",
"src": "39074:18:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "39066:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "39113:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39124:1:18",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "39109:3:18"
},
"nodeType": "YulFunctionCall",
"src": "39109:17:18"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "39132:4:18"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "39138:9:18"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "39128:3:18"
},
"nodeType": "YulFunctionCall",
"src": "39128:20:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "39102:6:18"
},
"nodeType": "YulFunctionCall",
"src": "39102:47:18"
},
"nodeType": "YulExpressionStatement",
"src": "39102:47:18"
},
{
"nodeType": "YulAssignment",
"src": "39158:139:18",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "39292:4:18"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "39166:124:18"
},
"nodeType": "YulFunctionCall",
"src": "39166:131:18"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "39158:4:18"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "39036:9:18",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "39051:4:18",
"type": ""
}
],
"src": "38885:419:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "39338:152:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39355:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39358:77:18",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "39348:6:18"
},
"nodeType": "YulFunctionCall",
"src": "39348:88:18"
},
"nodeType": "YulExpressionStatement",
"src": "39348:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39452:1:18",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39455:4:18",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "39445:6:18"
},
"nodeType": "YulFunctionCall",
"src": "39445:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "39445:15:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39476:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39479:4:18",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "39469:6:18"
},
"nodeType": "YulFunctionCall",
"src": "39469:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "39469:15:18"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "39310:180:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "39547:269:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "39557:22:18",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "39571:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39577:1:18",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "39567:3:18"
},
"nodeType": "YulFunctionCall",
"src": "39567:12:18"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "39557:6:18"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "39588:38:18",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "39618:4:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39624:1:18",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "39614:3:18"
},
"nodeType": "YulFunctionCall",
"src": "39614:12:18"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "39592:18:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "39665:51:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "39679:27:18",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "39693:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39701:4:18",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "39689:3:18"
},
"nodeType": "YulFunctionCall",
"src": "39689:17:18"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "39679:6:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "39645:18:18"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "39638:6:18"
},
"nodeType": "YulFunctionCall",
"src": "39638:26:18"
},
"nodeType": "YulIf",
"src": "39635:81:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "39768:42:18",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "39782:16:18"
},
"nodeType": "YulFunctionCall",
"src": "39782:18:18"
},
"nodeType": "YulExpressionStatement",
"src": "39782:18:18"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "39732:18:18"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "39755:6:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "39763:2:18",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "39752:2:18"
},
"nodeType": "YulFunctionCall",
"src": "39752:14:18"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "39729:2:18"
},
"nodeType": "YulFunctionCall",
"src": "39729:38:18"
},
"nodeType": "YulIf",
"src": "39726:84:18"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "39531:4:18",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "39540:6:18",
"type": ""
}
],
"src": "39496:320:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "39936:34:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "39946:18:18",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "39961:3:18"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "39946:11:18"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "39908:3:18",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "39913:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "39924:11:18",
"type": ""
}
],
"src": "39822:148:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "40030:87:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "40040:11:18",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "40048:3:18"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "40040:4:18"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "40068:1:18",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "40071:3:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "40061:6:18"
},
"nodeType": "YulFunctionCall",
"src": "40061:14:18"
},
"nodeType": "YulExpressionStatement",
"src": "40061:14:18"
},
{
"nodeType": "YulAssignment",
"src": "40084:26:18",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "40102:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "40105:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "40092:9:18"
},
"nodeType": "YulFunctionCall",
"src": "40092:18:18"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "40084:4:18"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "40017:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "40025:4:18",
"type": ""
}
],
"src": "39976:141:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "40254:738:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "40264:29:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "40287:5:18"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "40281:5:18"
},
"nodeType": "YulFunctionCall",
"src": "40281:12:18"
},
"variables": [
{
"name": "slotValue",
"nodeType": "YulTypedName",
"src": "40268:9:18",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "40302:50:18",
"value": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "40342:9:18"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "40316:25:18"
},
"nodeType": "YulFunctionCall",
"src": "40316:36:18"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "40306:6:18",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "40361:96:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "40445:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "40450:6:18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "40368:76:18"
},
"nodeType": "YulFunctionCall",
"src": "40368:89:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "40361:3:18"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "40506:130:18",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "40559:3:18"
},
{
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "40568:9:18"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "40583:4:18",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "40579:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40579:9:18"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "40564:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40564:25:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "40552:6:18"
},
"nodeType": "YulFunctionCall",
"src": "40552:38:18"
},
"nodeType": "YulExpressionStatement",
"src": "40552:38:18"
},
{
"nodeType": "YulAssignment",
"src": "40603:23:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "40614:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "40619:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "40610:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40610:16:18"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "40603:3:18"
}
]
}
]
},
"nodeType": "YulCase",
"src": "40499:137:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "40504:1:18",
"type": "",
"value": "0"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "40652:334:18",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "40697:53:18",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "40744:5:18"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "40712:31:18"
},
"nodeType": "YulFunctionCall",
"src": "40712:38:18"
},
"variables": [
{
"name": "dataPos",
"nodeType": "YulTypedName",
"src": "40701:7:18",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "40763:10:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "40772:1:18",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "40767:1:18",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "40830:110:18",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "40859:3:18"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "40864:1:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "40855:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40855:11:18"
},
{
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "40874:7:18"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "40868:5:18"
},
"nodeType": "YulFunctionCall",
"src": "40868:14:18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "40848:6:18"
},
"nodeType": "YulFunctionCall",
"src": "40848:35:18"
},
"nodeType": "YulExpressionStatement",
"src": "40848:35:18"
},
{
"nodeType": "YulAssignment",
"src": "40900:26:18",
"value": {
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "40915:7:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "40924:1:18",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "40911:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40911:15:18"
},
"variableNames": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "40900:7:18"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "40797:1:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "40800:6:18"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "40794:2:18"
},
"nodeType": "YulFunctionCall",
"src": "40794:13:18"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "40808:21:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "40810:17:18",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "40819:1:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "40822:4:18",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "40815:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40815:12:18"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "40810:1:18"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "40790:3:18",
"statements": []
},
"src": "40786:154:18"
},
{
"nodeType": "YulAssignment",
"src": "40953:23:18",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "40964:3:18"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "40969:6:18"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "40960:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40960:16:18"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "40953:3:18"
}
]
}
]
},
"nodeType": "YulCase",
"src": "40645:341:18",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "40650:1:18",
"type": "",
"value": "1"
}
}
],
"expression": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "40477:9:18"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "40488:1:18",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "40473:3:18"
},
"nodeType": "YulFunctionCall",
"src": "40473:17:18"
},
"nodeType": "YulSwitch",
"src": "40466:520:18"
}
]
},
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "40235:5:18",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "40242:3:18",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "40250:3:18",
"type": ""
}
],
"src": "40147:845:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "41176:245:18",
"statements": [
{
"nodeType": "YulAssignment",
"src": "41187:99:18",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "41273:6:18"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "41282:3:18"
}
],
"functionName": {
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "41194:78:18"
},
"nodeType": "YulFunctionCall",
"src": "41194:92:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "41187:3:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "41296:99:18",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "41382:6:18"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "41391:3:18"
}
],
"functionName": {
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "41303:78:18"
},
"nodeType": "YulFunctionCall",
"src": "41303:92:18"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "41296:3:18"
}
]
},
{
"nodeType": "YulAssignment",
"src": "41405:10:18",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "41412:3:18"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "41405:3:18"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "41147:3:18",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "41153:6:18",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "41161:6:18",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "41172:3:18",
"type": ""
}
],
"src": "40998:423:18"
},
{
"body": {
"nodeType": "YulBlock",
"src": "41455:152:18",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "41472:1:18",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "41475:77:18",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "41465:6:18"
},
"nodeType": "YulFunctionCall",
"src": "41465:88:18"
},
"nodeType": "YulExpressionStatement",
"src": "41465:88:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "41569:1:18",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "41572:4:18",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "41562:6:18"
},
"nodeType": "YulFunctionCall",
"src": "41562:15:18"
},
"nodeType": "YulExpressionStatement",
"src": "41562:15:18"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "41593:1:18",
"type": "",
"value": "0"
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