diff --git a/University-Dev-Tours/India/MIT-Meerut/README.md b/University-Dev-Tours/India/MIT-Meerut/README.md deleted file mode 100644 index 8b137891..00000000 --- a/University-Dev-Tours/India/MIT-Meerut/README.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/access/Ownable.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/access/Ownable.sol new file mode 100644 index 00000000..bd96f666 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/access/Ownable.sol @@ -0,0 +1,100 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) + +pragma solidity ^0.8.20; + +import {Context} from "../utils/Context.sol"; + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * The initial owner is set to the address provided by the deployer. This can + * later be changed with {transferOwnership}. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be applied to your functions to restrict their use to + * the owner. + */ +abstract contract Ownable is Context { + address private _owner; + + /** + * @dev The caller account is not authorized to perform an operation. + */ + error OwnableUnauthorizedAccount(address account); + + /** + * @dev The owner is not a valid owner account. (eg. `address(0)`) + */ + error OwnableInvalidOwner(address owner); + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address initialOwner) { + if (initialOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(initialOwner); + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + _checkOwner(); + _; + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view virtual returns (address) { + return _owner; + } + + /** + * @dev Throws if the sender is not the owner. + */ + function _checkOwner() internal view virtual { + if (owner() != _msgSender()) { + revert OwnableUnauthorizedAccount(_msgSender()); + } + } + + /** + * @dev Leaves the contract without owner. It will not be possible to call + * `onlyOwner` functions. Can only be called by the current owner. + * + * NOTE: Renouncing ownership will leave the contract without an owner, + * thereby disabling any functionality that is only available to the owner. + */ + function renounceOwnership() public virtual onlyOwner { + _transferOwnership(address(0)); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public virtual onlyOwner { + if (newOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { + address oldOwner = _owner; + _owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC165.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC165.sol new file mode 100644 index 00000000..944dd0d5 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC165.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol) + +pragma solidity ^0.8.20; + +import {IERC165} from "../utils/introspection/IERC165.sol"; diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC4906.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC4906.sol new file mode 100644 index 00000000..bc008e39 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC4906.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC4906.sol) + +pragma solidity ^0.8.20; + +import {IERC165} from "./IERC165.sol"; +import {IERC721} from "./IERC721.sol"; + +/// @title EIP-721 Metadata Update Extension +interface IERC4906 is IERC165, IERC721 { + /// @dev This event emits when the metadata of a token is changed. + /// So that the third-party platforms such as NFT market could + /// timely update the images and related attributes of the NFT. + event MetadataUpdate(uint256 _tokenId); + + /// @dev This event emits when the metadata of a range of tokens is changed. + /// So that the third-party platforms such as NFT market could + /// timely update the images and related attributes of the NFTs. + event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId); +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC721.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC721.sol new file mode 100644 index 00000000..0ea735bb --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/IERC721.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol) + +pragma solidity ^0.8.20; + +import {IERC721} from "../token/ERC721/IERC721.sol"; diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/draft-IERC6093.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/draft-IERC6093.sol new file mode 100644 index 00000000..f6990e60 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/interfaces/draft-IERC6093.sol @@ -0,0 +1,161 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol) +pragma solidity ^0.8.20; + +/** + * @dev Standard ERC20 Errors + * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens. + */ +interface IERC20Errors { + /** + * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. + * @param sender Address whose tokens are being transferred. + * @param balance Current balance for the interacting account. + * @param needed Minimum amount required to perform a transfer. + */ + error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); + + /** + * @dev Indicates a failure with the token `sender`. Used in transfers. + * @param sender Address whose tokens are being transferred. + */ + error ERC20InvalidSender(address sender); + + /** + * @dev Indicates a failure with the token `receiver`. Used in transfers. + * @param receiver Address to which tokens are being transferred. + */ + error ERC20InvalidReceiver(address receiver); + + /** + * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. + * @param spender Address that may be allowed to operate on tokens without being their owner. + * @param allowance Amount of tokens a `spender` is allowed to operate with. + * @param needed Minimum amount required to perform a transfer. + */ + error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); + + /** + * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. + * @param approver Address initiating an approval operation. + */ + error ERC20InvalidApprover(address approver); + + /** + * @dev Indicates a failure with the `spender` to be approved. Used in approvals. + * @param spender Address that may be allowed to operate on tokens without being their owner. + */ + error ERC20InvalidSpender(address spender); +} + +/** + * @dev Standard ERC721 Errors + * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens. + */ +interface IERC721Errors { + /** + * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. + * Used in balance queries. + * @param owner Address of the current owner of a token. + */ + error ERC721InvalidOwner(address owner); + + /** + * @dev Indicates a `tokenId` whose `owner` is the zero address. + * @param tokenId Identifier number of a token. + */ + error ERC721NonexistentToken(uint256 tokenId); + + /** + * @dev Indicates an error related to the ownership over a particular token. Used in transfers. + * @param sender Address whose tokens are being transferred. + * @param tokenId Identifier number of a token. + * @param owner Address of the current owner of a token. + */ + error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); + + /** + * @dev Indicates a failure with the token `sender`. Used in transfers. + * @param sender Address whose tokens are being transferred. + */ + error ERC721InvalidSender(address sender); + + /** + * @dev Indicates a failure with the token `receiver`. Used in transfers. + * @param receiver Address to which tokens are being transferred. + */ + error ERC721InvalidReceiver(address receiver); + + /** + * @dev Indicates a failure with the `operator`’s approval. Used in transfers. + * @param operator Address that may be allowed to operate on tokens without being their owner. + * @param tokenId Identifier number of a token. + */ + error ERC721InsufficientApproval(address operator, uint256 tokenId); + + /** + * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. + * @param approver Address initiating an approval operation. + */ + error ERC721InvalidApprover(address approver); + + /** + * @dev Indicates a failure with the `operator` to be approved. Used in approvals. + * @param operator Address that may be allowed to operate on tokens without being their owner. + */ + error ERC721InvalidOperator(address operator); +} + +/** + * @dev Standard ERC1155 Errors + * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens. + */ +interface IERC1155Errors { + /** + * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. + * @param sender Address whose tokens are being transferred. + * @param balance Current balance for the interacting account. + * @param needed Minimum amount required to perform a transfer. + * @param tokenId Identifier number of a token. + */ + error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId); + + /** + * @dev Indicates a failure with the token `sender`. Used in transfers. + * @param sender Address whose tokens are being transferred. + */ + error ERC1155InvalidSender(address sender); + + /** + * @dev Indicates a failure with the token `receiver`. Used in transfers. + * @param receiver Address to which tokens are being transferred. + */ + error ERC1155InvalidReceiver(address receiver); + + /** + * @dev Indicates a failure with the `operator`’s approval. Used in transfers. + * @param operator Address that may be allowed to operate on tokens without being their owner. + * @param owner Address of the current owner of a token. + */ + error ERC1155MissingApprovalForAll(address operator, address owner); + + /** + * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. + * @param approver Address initiating an approval operation. + */ + error ERC1155InvalidApprover(address approver); + + /** + * @dev Indicates a failure with the `operator` to be approved. Used in approvals. + * @param operator Address that may be allowed to operate on tokens without being their owner. + */ + error ERC1155InvalidOperator(address operator); + + /** + * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. + * Used in batch transfers. + * @param idsLength Length of the array of token identifiers + * @param valuesLength Length of the array of token amounts + */ + error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/ERC721.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/ERC721.sol new file mode 100644 index 00000000..98a80e52 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/ERC721.sol @@ -0,0 +1,483 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol) + +pragma solidity ^0.8.20; + +import {IERC721} from "./IERC721.sol"; +import {IERC721Receiver} from "./IERC721Receiver.sol"; +import {IERC721Metadata} from "./extensions/IERC721Metadata.sol"; +import {Context} from "../../utils/Context.sol"; +import {Strings} from "../../utils/Strings.sol"; +import {IERC165, ERC165} from "../../utils/introspection/ERC165.sol"; +import {IERC721Errors} from "../../interfaces/draft-IERC6093.sol"; + +/** + * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including + * the Metadata extension, but not including the Enumerable extension, which is available separately as + * {ERC721Enumerable}. + */ +abstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors { + using Strings for uint256; + + // Token name + string private _name; + + // Token symbol + string private _symbol; + + mapping(uint256 tokenId => address) private _owners; + + mapping(address owner => uint256) private _balances; + + mapping(uint256 tokenId => address) private _tokenApprovals; + + mapping(address owner => mapping(address operator => bool)) private _operatorApprovals; + + /** + * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. + */ + constructor(string memory name_, string memory symbol_) { + _name = name_; + _symbol = symbol_; + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { + return + interfaceId == type(IERC721).interfaceId || + interfaceId == type(IERC721Metadata).interfaceId || + super.supportsInterface(interfaceId); + } + + /** + * @dev See {IERC721-balanceOf}. + */ + function balanceOf(address owner) public view virtual returns (uint256) { + if (owner == address(0)) { + revert ERC721InvalidOwner(address(0)); + } + return _balances[owner]; + } + + /** + * @dev See {IERC721-ownerOf}. + */ + function ownerOf(uint256 tokenId) public view virtual returns (address) { + return _requireOwned(tokenId); + } + + /** + * @dev See {IERC721Metadata-name}. + */ + function name() public view virtual returns (string memory) { + return _name; + } + + /** + * @dev See {IERC721Metadata-symbol}. + */ + function symbol() public view virtual returns (string memory) { + return _symbol; + } + + /** + * @dev See {IERC721Metadata-tokenURI}. + */ + function tokenURI(uint256 tokenId) public view virtual returns (string memory) { + _requireOwned(tokenId); + + string memory baseURI = _baseURI(); + return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : ""; + } + + /** + * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each + * token will be the concatenation of the `baseURI` and the `tokenId`. Empty + * by default, can be overridden in child contracts. + */ + function _baseURI() internal view virtual returns (string memory) { + return ""; + } + + /** + * @dev See {IERC721-approve}. + */ + function approve(address to, uint256 tokenId) public virtual { + _approve(to, tokenId, _msgSender()); + } + + /** + * @dev See {IERC721-getApproved}. + */ + function getApproved(uint256 tokenId) public view virtual returns (address) { + _requireOwned(tokenId); + + return _getApproved(tokenId); + } + + /** + * @dev See {IERC721-setApprovalForAll}. + */ + function setApprovalForAll(address operator, bool approved) public virtual { + _setApprovalForAll(_msgSender(), operator, approved); + } + + /** + * @dev See {IERC721-isApprovedForAll}. + */ + function isApprovedForAll(address owner, address operator) public view virtual returns (bool) { + return _operatorApprovals[owner][operator]; + } + + /** + * @dev See {IERC721-transferFrom}. + */ + function transferFrom(address from, address to, uint256 tokenId) public virtual { + if (to == address(0)) { + revert ERC721InvalidReceiver(address(0)); + } + // Setting an "auth" arguments enables the `_isAuthorized` check which verifies that the token exists + // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here. + address previousOwner = _update(to, tokenId, _msgSender()); + if (previousOwner != from) { + revert ERC721IncorrectOwner(from, tokenId, previousOwner); + } + } + + /** + * @dev See {IERC721-safeTransferFrom}. + */ + function safeTransferFrom(address from, address to, uint256 tokenId) public { + safeTransferFrom(from, to, tokenId, ""); + } + + /** + * @dev See {IERC721-safeTransferFrom}. + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual { + transferFrom(from, to, tokenId); + _checkOnERC721Received(from, to, tokenId, data); + } + + /** + * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist + * + * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the + * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances + * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by + * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`. + */ + function _ownerOf(uint256 tokenId) internal view virtual returns (address) { + return _owners[tokenId]; + } + + /** + * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted. + */ + function _getApproved(uint256 tokenId) internal view virtual returns (address) { + return _tokenApprovals[tokenId]; + } + + /** + * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in + * particular (ignoring whether it is owned by `owner`). + * + * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this + * assumption. + */ + function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) { + return + spender != address(0) && + (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender); + } + + /** + * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner. + * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets + * the `spender` for the specific `tokenId`. + * + * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this + * assumption. + */ + function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual { + if (!_isAuthorized(owner, spender, tokenId)) { + if (owner == address(0)) { + revert ERC721NonexistentToken(tokenId); + } else { + revert ERC721InsufficientApproval(spender, tokenId); + } + } + } + + /** + * @dev Unsafe write access to the balances, used by extensions that "mint" tokens using an {ownerOf} override. + * + * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that + * a uint256 would ever overflow from increments when these increments are bounded to uint128 values. + * + * WARNING: Increasing an account's balance using this function tends to be paired with an override of the + * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership + * remain consistent with one another. + */ + function _increaseBalance(address account, uint128 value) internal virtual { + unchecked { + _balances[account] += value; + } + } + + /** + * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner + * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update. + * + * The `auth` argument is optional. If the value passed is non 0, then this function will check that + * `auth` is either the owner of the token, or approved to operate on the token (by the owner). + * + * Emits a {Transfer} event. + * + * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}. + */ + function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) { + address from = _ownerOf(tokenId); + + // Perform (optional) operator check + if (auth != address(0)) { + _checkAuthorized(from, auth, tokenId); + } + + // Execute the update + if (from != address(0)) { + // Clear approval. No need to re-authorize or emit the Approval event + _approve(address(0), tokenId, address(0), false); + + unchecked { + _balances[from] -= 1; + } + } + + if (to != address(0)) { + unchecked { + _balances[to] += 1; + } + } + + _owners[tokenId] = to; + + emit Transfer(from, to, tokenId); + + return from; + } + + /** + * @dev Mints `tokenId` and transfers it to `to`. + * + * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible + * + * Requirements: + * + * - `tokenId` must not exist. + * - `to` cannot be the zero address. + * + * Emits a {Transfer} event. + */ + function _mint(address to, uint256 tokenId) internal { + if (to == address(0)) { + revert ERC721InvalidReceiver(address(0)); + } + address previousOwner = _update(to, tokenId, address(0)); + if (previousOwner != address(0)) { + revert ERC721InvalidSender(address(0)); + } + } + + /** + * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance. + * + * Requirements: + * + * - `tokenId` must not exist. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function _safeMint(address to, uint256 tokenId) internal { + _safeMint(to, tokenId, ""); + } + + /** + * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is + * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. + */ + function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual { + _mint(to, tokenId); + _checkOnERC721Received(address(0), to, tokenId, data); + } + + /** + * @dev Destroys `tokenId`. + * The approval is cleared when the token is burned. + * This is an internal function that does not check if the sender is authorized to operate on the token. + * + * Requirements: + * + * - `tokenId` must exist. + * + * Emits a {Transfer} event. + */ + function _burn(uint256 tokenId) internal { + address previousOwner = _update(address(0), tokenId, address(0)); + if (previousOwner == address(0)) { + revert ERC721NonexistentToken(tokenId); + } + } + + /** + * @dev Transfers `tokenId` from `from` to `to`. + * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. + * + * Requirements: + * + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * + * Emits a {Transfer} event. + */ + function _transfer(address from, address to, uint256 tokenId) internal { + if (to == address(0)) { + revert ERC721InvalidReceiver(address(0)); + } + address previousOwner = _update(to, tokenId, address(0)); + if (previousOwner == address(0)) { + revert ERC721NonexistentToken(tokenId); + } else if (previousOwner != from) { + revert ERC721IncorrectOwner(from, tokenId, previousOwner); + } + } + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients + * are aware of the ERC721 standard to prevent tokens from being forever locked. + * + * `data` is additional data, it has no specified format and it is sent in call to `to`. + * + * This internal function is like {safeTransferFrom} in the sense that it invokes + * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g. + * implement alternative mechanisms to perform token transfer, such as signature-based. + * + * Requirements: + * + * - `tokenId` token must exist and be owned by `from`. + * - `to` cannot be the zero address. + * - `from` cannot be the zero address. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function _safeTransfer(address from, address to, uint256 tokenId) internal { + _safeTransfer(from, to, tokenId, ""); + } + + /** + * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is + * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. + */ + function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual { + _transfer(from, to, tokenId); + _checkOnERC721Received(from, to, tokenId, data); + } + + /** + * @dev Approve `to` to operate on `tokenId` + * + * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is + * either the owner of the token, or approved to operate on all tokens held by this owner. + * + * Emits an {Approval} event. + * + * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument. + */ + function _approve(address to, uint256 tokenId, address auth) internal { + _approve(to, tokenId, auth, true); + } + + /** + * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not + * emitted in the context of transfers. + */ + function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual { + // Avoid reading the owner unless necessary + if (emitEvent || auth != address(0)) { + address owner = _requireOwned(tokenId); + + // We do not use _isAuthorized because single-token approvals should not be able to call approve + if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) { + revert ERC721InvalidApprover(auth); + } + + if (emitEvent) { + emit Approval(owner, to, tokenId); + } + } + + _tokenApprovals[tokenId] = to; + } + + /** + * @dev Approve `operator` to operate on all of `owner` tokens + * + * Requirements: + * - operator can't be the address zero. + * + * Emits an {ApprovalForAll} event. + */ + function _setApprovalForAll(address owner, address operator, bool approved) internal virtual { + if (operator == address(0)) { + revert ERC721InvalidOperator(operator); + } + _operatorApprovals[owner][operator] = approved; + emit ApprovalForAll(owner, operator, approved); + } + + /** + * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned). + * Returns the owner. + * + * Overrides to ownership logic should be done to {_ownerOf}. + */ + function _requireOwned(uint256 tokenId) internal view returns (address) { + address owner = _ownerOf(tokenId); + if (owner == address(0)) { + revert ERC721NonexistentToken(tokenId); + } + return owner; + } + + /** + * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the + * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract. + * + * @param from address representing the previous owner of the given token ID + * @param to target address that will receive the tokens + * @param tokenId uint256 ID of the token to be transferred + * @param data bytes optional data to send along with the call + */ + function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private { + if (to.code.length > 0) { + try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) { + if (retval != IERC721Receiver.onERC721Received.selector) { + revert ERC721InvalidReceiver(to); + } + } catch (bytes memory reason) { + if (reason.length == 0) { + revert ERC721InvalidReceiver(to); + } else { + /// @solidity memory-safe-assembly + assembly { + revert(add(32, reason), mload(reason)) + } + } + } + } + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/IERC721.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/IERC721.sol new file mode 100644 index 00000000..12f32363 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/IERC721.sol @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol) + +pragma solidity ^0.8.20; + +import {IERC165} from "../../utils/introspection/IERC165.sol"; + +/** + * @dev Required interface of an ERC721 compliant contract. + */ +interface IERC721 is IERC165 { + /** + * @dev Emitted when `tokenId` token is transferred from `from` to `to`. + */ + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. + */ + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. + */ + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + /** + * @dev Returns the number of tokens in ``owner``'s account. + */ + function balanceOf(address owner) external view returns (uint256 balance); + + /** + * @dev Returns the owner of the `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function ownerOf(uint256 tokenId) external view returns (address owner); + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon + * a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients + * are aware of the ERC721 protocol to prevent tokens from being forever locked. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or + * {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon + * a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Transfers `tokenId` token from `from` to `to`. + * + * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 + * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must + * understand this adds an external call which potentially creates a reentrancy vulnerability. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * + * Emits a {Transfer} event. + */ + function transferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Gives permission to `to` to transfer `tokenId` token to another account. + * The approval is cleared when the token is transferred. + * + * Only a single account can be approved at a time, so approving the zero address clears previous approvals. + * + * Requirements: + * + * - The caller must own the token or be an approved operator. + * - `tokenId` must exist. + * + * Emits an {Approval} event. + */ + function approve(address to, uint256 tokenId) external; + + /** + * @dev Approve or remove `operator` as an operator for the caller. + * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. + * + * Requirements: + * + * - The `operator` cannot be the address zero. + * + * Emits an {ApprovalForAll} event. + */ + function setApprovalForAll(address operator, bool approved) external; + + /** + * @dev Returns the account approved for `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function getApproved(uint256 tokenId) external view returns (address operator); + + /** + * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. + * + * See {setApprovalForAll} + */ + function isApprovedForAll(address owner, address operator) external view returns (bool); +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol new file mode 100644 index 00000000..f9dc1332 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol) + +pragma solidity ^0.8.20; + +/** + * @title ERC721 token receiver interface + * @dev Interface for any contract that wants to support safeTransfers + * from ERC721 asset contracts. + */ +interface IERC721Receiver { + /** + * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} + * by `operator` from `from`, this function is called. + * + * It must return its Solidity selector to confirm the token transfer. + * If any other value is returned or the interface is not implemented by the recipient, the transfer will be + * reverted. + * + * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`. + */ + function onERC721Received( + address operator, + address from, + uint256 tokenId, + bytes calldata data + ) external returns (bytes4); +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol new file mode 100644 index 00000000..cbf3e03f --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol @@ -0,0 +1,172 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721Enumerable.sol) + +pragma solidity ^0.8.20; + +import {ERC721} from "../ERC721.sol"; +import {IERC721Enumerable} from "./IERC721Enumerable.sol"; +import {IERC165} from "../../../utils/introspection/ERC165.sol"; + +/** + * @dev This implements an optional extension of {ERC721} defined in the EIP that adds enumerability + * of all the token ids in the contract as well as all token ids owned by each account. + * + * CAUTION: `ERC721` extensions that implement custom `balanceOf` logic, such as `ERC721Consecutive`, + * interfere with enumerability and should not be used together with `ERC721Enumerable`. + */ +abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { + mapping(address owner => mapping(uint256 index => uint256)) private _ownedTokens; + mapping(uint256 tokenId => uint256) private _ownedTokensIndex; + + uint256[] private _allTokens; + mapping(uint256 tokenId => uint256) private _allTokensIndex; + + /** + * @dev An `owner`'s token query was out of bounds for `index`. + * + * NOTE: The owner being `address(0)` indicates a global out of bounds index. + */ + error ERC721OutOfBoundsIndex(address owner, uint256 index); + + /** + * @dev Batch mint is not allowed. + */ + error ERC721EnumerableForbiddenBatchMint(); + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { + return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}. + */ + function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual returns (uint256) { + if (index >= balanceOf(owner)) { + revert ERC721OutOfBoundsIndex(owner, index); + } + return _ownedTokens[owner][index]; + } + + /** + * @dev See {IERC721Enumerable-totalSupply}. + */ + function totalSupply() public view virtual returns (uint256) { + return _allTokens.length; + } + + /** + * @dev See {IERC721Enumerable-tokenByIndex}. + */ + function tokenByIndex(uint256 index) public view virtual returns (uint256) { + if (index >= totalSupply()) { + revert ERC721OutOfBoundsIndex(address(0), index); + } + return _allTokens[index]; + } + + /** + * @dev See {ERC721-_update}. + */ + function _update(address to, uint256 tokenId, address auth) internal virtual override returns (address) { + address previousOwner = super._update(to, tokenId, auth); + + if (previousOwner == address(0)) { + _addTokenToAllTokensEnumeration(tokenId); + } else if (previousOwner != to) { + _removeTokenFromOwnerEnumeration(previousOwner, tokenId); + } + if (to == address(0)) { + _removeTokenFromAllTokensEnumeration(tokenId); + } else if (previousOwner != to) { + _addTokenToOwnerEnumeration(to, tokenId); + } + + return previousOwner; + } + + /** + * @dev Private function to add a token to this extension's ownership-tracking data structures. + * @param to address representing the new owner of the given token ID + * @param tokenId uint256 ID of the token to be added to the tokens list of the given address + */ + function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { + uint256 length = balanceOf(to) - 1; + _ownedTokens[to][length] = tokenId; + _ownedTokensIndex[tokenId] = length; + } + + /** + * @dev Private function to add a token to this extension's token tracking data structures. + * @param tokenId uint256 ID of the token to be added to the tokens list + */ + function _addTokenToAllTokensEnumeration(uint256 tokenId) private { + _allTokensIndex[tokenId] = _allTokens.length; + _allTokens.push(tokenId); + } + + /** + * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that + * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for + * gas optimizations e.g. when performing a transfer operation (avoiding double writes). + * This has O(1) time complexity, but alters the order of the _ownedTokens array. + * @param from address representing the previous owner of the given token ID + * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address + */ + function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { + // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and + // then delete the last slot (swap and pop). + + uint256 lastTokenIndex = balanceOf(from); + uint256 tokenIndex = _ownedTokensIndex[tokenId]; + + // When the token to delete is the last token, the swap operation is unnecessary + if (tokenIndex != lastTokenIndex) { + uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; + + _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token + _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index + } + + // This also deletes the contents at the last position of the array + delete _ownedTokensIndex[tokenId]; + delete _ownedTokens[from][lastTokenIndex]; + } + + /** + * @dev Private function to remove a token from this extension's token tracking data structures. + * This has O(1) time complexity, but alters the order of the _allTokens array. + * @param tokenId uint256 ID of the token to be removed from the tokens list + */ + function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { + // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and + // then delete the last slot (swap and pop). + + uint256 lastTokenIndex = _allTokens.length - 1; + uint256 tokenIndex = _allTokensIndex[tokenId]; + + // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so + // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding + // an 'if' statement (like in _removeTokenFromOwnerEnumeration) + uint256 lastTokenId = _allTokens[lastTokenIndex]; + + _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token + _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index + + // This also deletes the contents at the last position of the array + delete _allTokensIndex[tokenId]; + _allTokens.pop(); + } + + /** + * See {ERC721-_increaseBalance}. We need that to account tokens that were minted in batch + */ + function _increaseBalance(address account, uint128 amount) internal virtual override { + if (amount > 0) { + revert ERC721EnumerableForbiddenBatchMint(); + } + super._increaseBalance(account, amount); + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol new file mode 100644 index 00000000..2584cb58 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol @@ -0,0 +1,61 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721URIStorage.sol) + +pragma solidity ^0.8.20; + +import {ERC721} from "../ERC721.sol"; +import {Strings} from "../../../utils/Strings.sol"; +import {IERC4906} from "../../../interfaces/IERC4906.sol"; +import {IERC165} from "../../../interfaces/IERC165.sol"; + +/** + * @dev ERC721 token with storage based token URI management. + */ +abstract contract ERC721URIStorage is IERC4906, ERC721 { + using Strings for uint256; + + // Interface ID as defined in ERC-4906. This does not correspond to a traditional interface ID as ERC-4906 only + // defines events and does not include any external function. + bytes4 private constant ERC4906_INTERFACE_ID = bytes4(0x49064906); + + // Optional mapping for token URIs + mapping(uint256 tokenId => string) private _tokenURIs; + + /** + * @dev See {IERC165-supportsInterface} + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) { + return interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId); + } + + /** + * @dev See {IERC721Metadata-tokenURI}. + */ + function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { + _requireOwned(tokenId); + + string memory _tokenURI = _tokenURIs[tokenId]; + string memory base = _baseURI(); + + // If there is no base URI, return the token URI. + if (bytes(base).length == 0) { + return _tokenURI; + } + // If both are set, concatenate the baseURI and tokenURI (via string.concat). + if (bytes(_tokenURI).length > 0) { + return string.concat(base, _tokenURI); + } + + return super.tokenURI(tokenId); + } + + /** + * @dev Sets `_tokenURI` as the tokenURI of `tokenId`. + * + * Emits {MetadataUpdate}. + */ + function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { + _tokenURIs[tokenId] = _tokenURI; + emit MetadataUpdate(tokenId); + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol new file mode 100644 index 00000000..7a09cc6a --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Enumerable.sol) + +pragma solidity ^0.8.20; + +import {IERC721} from "../IERC721.sol"; + +/** + * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Enumerable is IERC721 { + /** + * @dev Returns the total amount of tokens stored by the contract. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns a token ID owned by `owner` at a given `index` of its token list. + * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. + */ + function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256); + + /** + * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. + * Use along with {totalSupply} to enumerate all tokens. + */ + function tokenByIndex(uint256 index) external view returns (uint256); +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol new file mode 100644 index 00000000..e9e00fab --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol) + +pragma solidity ^0.8.20; + +import {IERC721} from "../IERC721.sol"; + +/** + * @title ERC-721 Non-Fungible Token Standard, optional metadata extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Metadata is IERC721 { + /** + * @dev Returns the token collection name. + */ + function name() external view returns (string memory); + + /** + * @dev Returns the token collection symbol. + */ + function symbol() external view returns (string memory); + + /** + * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. + */ + function tokenURI(uint256 tokenId) external view returns (string memory); +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/Context.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/Context.sol new file mode 100644 index 00000000..4e535fe0 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/Context.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) + +pragma solidity ^0.8.20; + +/** + * @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; + } + + function _contextSuffixLength() internal view virtual returns (uint256) { + return 0; + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/Strings.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/Strings.sol new file mode 100644 index 00000000..b2c0a40f --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/Strings.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol) + +pragma solidity ^0.8.20; + +import {Math} from "./math/Math.sol"; +import {SignedMath} from "./math/SignedMath.sol"; + +/** + * @dev String operations. + */ +library Strings { + bytes16 private constant HEX_DIGITS = "0123456789abcdef"; + uint8 private constant ADDRESS_LENGTH = 20; + + /** + * @dev The `value` string doesn't fit in the specified `length`. + */ + error StringsInsufficientHexLength(uint256 value, uint256 length); + + /** + * @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), HEX_DIGITS)) + } + value /= 10; + if (value == 0) break; + } + return buffer; + } + } + + /** + * @dev Converts a `int256` to its ASCII `string` decimal representation. + */ + function toStringSigned(int256 value) internal pure returns (string memory) { + return string.concat(value < 0 ? "-" : "", toString(SignedMath.abs(value))); + } + + /** + * @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) { + uint256 localValue = value; + 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] = HEX_DIGITS[localValue & 0xf]; + localValue >>= 4; + } + if (localValue != 0) { + revert StringsInsufficientHexLength(value, length); + } + 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); + } + + /** + * @dev Returns true if the two strings are equal. + */ + function equal(string memory a, string memory b) internal pure returns (bool) { + return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b)); + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/introspection/ERC165.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/introspection/ERC165.sol new file mode 100644 index 00000000..1e77b60d --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/introspection/ERC165.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol) + +pragma solidity ^0.8.20; + +import {IERC165} from "./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); + * } + * ``` + */ +abstract contract ERC165 is IERC165 { + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { + return interfaceId == type(IERC165).interfaceId; + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/introspection/IERC165.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/introspection/IERC165.sol new file mode 100644 index 00000000..c09f31fe --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/introspection/IERC165.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol) + +pragma solidity ^0.8.20; + +/** + * @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); +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/math/Math.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/math/Math.sol new file mode 100644 index 00000000..96815245 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/math/Math.sol @@ -0,0 +1,415 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Standard math utilities missing in the Solidity language. + */ +library Math { + /** + * @dev Muldiv operation overflow. + */ + error MathOverflowedMulDiv(); + + enum Rounding { + Floor, // Toward negative infinity + Ceil, // Toward positive infinity + Trunc, // Toward zero + Expand // Away from zero + } + + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the subtraction of two unsigned integers, with an overflow flag. + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b > a) return (false, 0); + return (true, a - b); + } + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) return (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a / b); + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a % b); + } + } + + /** + * @dev Returns the 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 towards infinity instead + * of rounding towards zero. + */ + function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { + if (b == 0) { + // Guarantee the same behavior as in a regular Solidity division. + return a / b; + } + + // (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 = x * y; // Least significant 256 bits of the product + uint256 prod1; // Most significant 256 bits of the product + assembly { + let mm := mulmod(x, y, not(0)) + prod1 := sub(sub(mm, prod0), lt(mm, prod0)) + } + + // Handle non-overflow cases, 256 by 256 division. + if (prod1 == 0) { + // Solidity will revert if denominator == 0, unlike the div opcode on its own. + // The surrounding unchecked block does not change this fact. + // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic. + return prod0 / denominator; + } + + // Make sure the result is less than 2^256. Also prevents denominator == 0. + if (denominator <= prod1) { + revert MathOverflowedMulDiv(); + } + + /////////////////////////////////////////////// + // 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. + + uint256 twos = denominator & (0 - denominator); + 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 (unsignedRoundsUp(rounding) && 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 + * towards zero. + * + * 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 + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0); + } + } + + /** + * @dev Return the log in base 2 of a positive value rounded towards zero. + * 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 + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0); + } + } + + /** + * @dev Return the log in base 10 of a positive value rounded towards zero. + * 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 + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0); + } + } + + /** + * @dev Return the log in base 256 of a positive value rounded towards zero. + * 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 256, 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 + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0); + } + } + + /** + * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers. + */ + function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) { + return uint8(rounding) % 2 == 1; + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/math/SignedMath.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/math/SignedMath.sol new file mode 100644 index 00000000..66a61516 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/.deps/npm/@openzeppelin/contracts/utils/math/SignedMath.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Standard signed math utilities missing in the Solidity language. + */ +library SignedMath { + /** + * @dev Returns the largest of two signed numbers. + */ + function max(int256 a, int256 b) internal pure returns (int256) { + return a > b ? a : b; + } + + /** + * @dev Returns the smallest of two signed numbers. + */ + function min(int256 a, int256 b) internal pure returns (int256) { + return a < b ? a : b; + } + + /** + * @dev Returns the average of two signed numbers without overflow. + * The result is rounded towards zero. + */ + function average(int256 a, int256 b) internal pure returns (int256) { + // Formula from the book "Hacker's Delight" + int256 x = (a & b) + ((a ^ b) >> 1); + return x + (int256(uint256(x) >> 255) & (a ^ b)); + } + + /** + * @dev Returns the absolute unsigned value of a signed value. + */ + function abs(int256 n) internal pure returns (uint256) { + unchecked { + // must be unchecked in order to support `n = type(int256).min` + return uint256(n >= 0 ? n : -n); + } + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/NFT.sol b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/NFT.sol new file mode 100644 index 00000000..b437f3c3 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/NFT.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +// Compatible with OpenZeppelin Contracts ^5.0.0 +pragma solidity ^0.8.20; +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; + +contract CoreNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable { + using Strings for uint256; + uint256 private _nextTokenId; + string private _baseURIExtended; + constructor( + string memory baseURI_ + ) ERC721("CoreNFT", "CORE") Ownable(msg.sender) { + _baseURIExtended = baseURI_; + _nextTokenId = 0; + } + function setBaseURI(string memory baseURI_) external onlyOwner { + _baseURIExtended = baseURI_; + } + function safeMint(address to) public onlyOwner { + uint256 tokenId = _nextTokenId++; + _safeMint(to, tokenId); + _setTokenURI( + tokenId, + string(abi.encodePacked(Strings.toString(tokenId), ".json")) + ); + } + function _baseURI() internal view virtual override returns (string memory) { + return _baseURIExtended; + } + function getCurrentTokenId() public view returns (uint256) { + return _nextTokenId; + } + // The following functions have to be overridden as required by Solidity. + function _update( + address to, + uint256 tokenId, + address auth + ) internal override(ERC721, ERC721Enumerable) returns (address) { + return super._update(to, tokenId, auth); + } + function _increaseBalance( + address account, + uint128 value + ) internal override(ERC721, ERC721Enumerable) { + super._increaseBalance(account, value); + } + function tokenURI( + uint256 tokenId + ) public view override(ERC721, ERC721URIStorage) returns (string memory) { + string memory baseURI = _baseURI(); + return + bytes(baseURI).length > 0 + ? string(abi.encodePacked(baseURI, tokenId.toString(), ".json")) + : ""; + } + function supportsInterface( + bytes4 interfaceId + ) + public + view + override(ERC721, ERC721Enumerable, ERC721URIStorage) + returns (bool) + { + return super.supportsInterface(interfaceId); + } +} diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/CoreNFT.json b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/CoreNFT.json new file mode 100644 index 00000000..61c38600 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/CoreNFT.json @@ -0,0 +1,21392 @@ +{ + "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": { + "@_3554": { + "entryPoint": null, + "id": 3554, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_386": { + "entryPoint": null, + "id": 386, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 353, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 812, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 878, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 924, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1802, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1817, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 694, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 551, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 721, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1104, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 997, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1401, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 1784, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1752, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1236, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1366, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1256, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1542, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 770, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1125, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1055, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1514, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 645, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1246, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1484, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 1008, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1290, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 571, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 576, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 566, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 561, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 581, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1141, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1471, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1342, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1154, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1300, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1337, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:8833:19", + "nodeType": "YulBlock", + "src": "0:8833:19", + "statements": [ + { + "body": { + "nativeSrc": "47:35:19", + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nativeSrc": "57:19:19", + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:19", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:19", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nativeSrc": "67:9:19", + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:19", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:19", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nativeSrc": "177:28:19", + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:19", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:19", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:19", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:19", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nativeSrc": "300:28:19", + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:19", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:19", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:19", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:19", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nativeSrc": "423:28:19", + "nodeType": "YulBlock", + "src": "423:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:19", + "nodeType": "YulLiteral", + "src": "440:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:19", + "nodeType": "YulLiteral", + "src": "443:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:19", + "nodeType": "YulIdentifier", + "src": "433:6:19" + }, + "nativeSrc": "433:12:19", + "nodeType": "YulFunctionCall", + "src": "433:12:19" + }, + "nativeSrc": "433:12:19", + "nodeType": "YulExpressionStatement", + "src": "433:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:19", + "nodeType": "YulFunctionDefinition", + "src": "334:117:19" + }, + { + "body": { + "nativeSrc": "546:28:19", + "nodeType": "YulBlock", + "src": "546:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:19", + "nodeType": "YulLiteral", + "src": "563:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:19", + "nodeType": "YulLiteral", + "src": "566:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:19", + "nodeType": "YulIdentifier", + "src": "556:6:19" + }, + "nativeSrc": "556:12:19", + "nodeType": "YulFunctionCall", + "src": "556:12:19" + }, + "nativeSrc": "556:12:19", + "nodeType": "YulExpressionStatement", + "src": "556:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:19", + "nodeType": "YulFunctionDefinition", + "src": "457:117:19" + }, + { + "body": { + "nativeSrc": "628:54:19", + "nodeType": "YulBlock", + "src": "628:54:19", + "statements": [ + { + "nativeSrc": "638:38:19", + "nodeType": "YulAssignment", + "src": "638:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:19", + "nodeType": "YulIdentifier", + "src": "656:5:19" + }, + { + "kind": "number", + "nativeSrc": "663:2:19", + "nodeType": "YulLiteral", + "src": "663:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:19", + "nodeType": "YulIdentifier", + "src": "652:3:19" + }, + "nativeSrc": "652:14:19", + "nodeType": "YulFunctionCall", + "src": "652:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:19", + "nodeType": "YulLiteral", + "src": "672:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:19", + "nodeType": "YulIdentifier", + "src": "668:3:19" + }, + "nativeSrc": "668:7:19", + "nodeType": "YulFunctionCall", + "src": "668:7:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:19", + "nodeType": "YulIdentifier", + "src": "648:3:19" + }, + "nativeSrc": "648:28:19", + "nodeType": "YulFunctionCall", + "src": "648:28:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:19", + "nodeType": "YulIdentifier", + "src": "638:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:19", + "nodeType": "YulTypedName", + "src": "611:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:19", + "nodeType": "YulTypedName", + "src": "621:6:19", + "type": "" + } + ], + "src": "580:102:19" + }, + { + "body": { + "nativeSrc": "716:152:19", + "nodeType": "YulBlock", + "src": "716:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "733:1:19", + "nodeType": "YulLiteral", + "src": "733:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:19", + "nodeType": "YulLiteral", + "src": "736:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:19", + "nodeType": "YulIdentifier", + "src": "726:6:19" + }, + "nativeSrc": "726:88:19", + "nodeType": "YulFunctionCall", + "src": "726:88:19" + }, + "nativeSrc": "726:88:19", + "nodeType": "YulExpressionStatement", + "src": "726:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "830:1:19", + "nodeType": "YulLiteral", + "src": "830:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:19", + "nodeType": "YulLiteral", + "src": "833:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "823:6:19", + "nodeType": "YulIdentifier", + "src": "823:6:19" + }, + "nativeSrc": "823:15:19", + "nodeType": "YulFunctionCall", + "src": "823:15:19" + }, + "nativeSrc": "823:15:19", + "nodeType": "YulExpressionStatement", + "src": "823:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:19", + "nodeType": "YulLiteral", + "src": "854:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:19", + "nodeType": "YulLiteral", + "src": "857:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:19", + "nodeType": "YulIdentifier", + "src": "847:6:19" + }, + "nativeSrc": "847:15:19", + "nodeType": "YulFunctionCall", + "src": "847:15:19" + }, + "nativeSrc": "847:15:19", + "nodeType": "YulExpressionStatement", + "src": "847:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:19", + "nodeType": "YulFunctionDefinition", + "src": "688:180:19" + }, + { + "body": { + "nativeSrc": "917:238:19", + "nodeType": "YulBlock", + "src": "917:238:19", + "statements": [ + { + "nativeSrc": "927:58:19", + "nodeType": "YulVariableDeclaration", + "src": "927:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:19", + "nodeType": "YulIdentifier", + "src": "949:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:19", + "nodeType": "YulIdentifier", + "src": "979:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:19", + "nodeType": "YulIdentifier", + "src": "957:21:19" + }, + "nativeSrc": "957:27:19", + "nodeType": "YulFunctionCall", + "src": "957:27:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:19", + "nodeType": "YulIdentifier", + "src": "945:3:19" + }, + "nativeSrc": "945:40:19", + "nodeType": "YulFunctionCall", + "src": "945:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "931:10:19", + "nodeType": "YulTypedName", + "src": "931:10:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1096:22:19", + "nodeType": "YulBlock", + "src": "1096:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:19", + "nodeType": "YulIdentifier", + "src": "1098:16:19" + }, + "nativeSrc": "1098:18:19", + "nodeType": "YulFunctionCall", + "src": "1098:18:19" + }, + "nativeSrc": "1098:18:19", + "nodeType": "YulExpressionStatement", + "src": "1098:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1039:10:19", + "nodeType": "YulIdentifier", + "src": "1039:10:19" + }, + { + "kind": "number", + "nativeSrc": "1051:18:19", + "nodeType": "YulLiteral", + "src": "1051:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:19", + "nodeType": "YulIdentifier", + "src": "1036:2:19" + }, + "nativeSrc": "1036:34:19", + "nodeType": "YulFunctionCall", + "src": "1036:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:19", + "nodeType": "YulIdentifier", + "src": "1075:10:19" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:19", + "nodeType": "YulIdentifier", + "src": "1087:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:19", + "nodeType": "YulIdentifier", + "src": "1072:2:19" + }, + "nativeSrc": "1072:22:19", + "nodeType": "YulFunctionCall", + "src": "1072:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:19", + "nodeType": "YulIdentifier", + "src": "1033:2:19" + }, + "nativeSrc": "1033:62:19", + "nodeType": "YulFunctionCall", + "src": "1033:62:19" + }, + "nativeSrc": "1030:88:19", + "nodeType": "YulIf", + "src": "1030:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:19", + "nodeType": "YulLiteral", + "src": "1134:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:19", + "nodeType": "YulIdentifier", + "src": "1138:10:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:19", + "nodeType": "YulIdentifier", + "src": "1127:6:19" + }, + "nativeSrc": "1127:22:19", + "nodeType": "YulFunctionCall", + "src": "1127:22:19" + }, + "nativeSrc": "1127:22:19", + "nodeType": "YulExpressionStatement", + "src": "1127:22:19" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "874:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "903:6:19", + "nodeType": "YulTypedName", + "src": "903:6:19", + "type": "" + }, + { + "name": "size", + "nativeSrc": "911:4:19", + "nodeType": "YulTypedName", + "src": "911:4:19", + "type": "" + } + ], + "src": "874:281:19" + }, + { + "body": { + "nativeSrc": "1202:88:19", + "nodeType": "YulBlock", + "src": "1202:88:19", + "statements": [ + { + "nativeSrc": "1212:30:19", + "nodeType": "YulAssignment", + "src": "1212:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:19", + "nodeType": "YulIdentifier", + "src": "1222:18:19" + }, + "nativeSrc": "1222:20:19", + "nodeType": "YulFunctionCall", + "src": "1222:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1212:6:19", + "nodeType": "YulIdentifier", + "src": "1212:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1271:6:19", + "nodeType": "YulIdentifier", + "src": "1271:6:19" + }, + { + "name": "size", + "nativeSrc": "1279:4:19", + "nodeType": "YulIdentifier", + "src": "1279:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1251:19:19", + "nodeType": "YulIdentifier", + "src": "1251:19:19" + }, + "nativeSrc": "1251:33:19", + "nodeType": "YulFunctionCall", + "src": "1251:33:19" + }, + "nativeSrc": "1251:33:19", + "nodeType": "YulExpressionStatement", + "src": "1251:33:19" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1161:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1186:4:19", + "nodeType": "YulTypedName", + "src": "1186:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1195:6:19", + "nodeType": "YulTypedName", + "src": "1195:6:19", + "type": "" + } + ], + "src": "1161:129:19" + }, + { + "body": { + "nativeSrc": "1363:241:19", + "nodeType": "YulBlock", + "src": "1363:241:19", + "statements": [ + { + "body": { + "nativeSrc": "1468:22:19", + "nodeType": "YulBlock", + "src": "1468:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:19", + "nodeType": "YulIdentifier", + "src": "1470:16:19" + }, + "nativeSrc": "1470:18:19", + "nodeType": "YulFunctionCall", + "src": "1470:18:19" + }, + "nativeSrc": "1470:18:19", + "nodeType": "YulExpressionStatement", + "src": "1470:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:19", + "nodeType": "YulIdentifier", + "src": "1440:6:19" + }, + { + "kind": "number", + "nativeSrc": "1448:18:19", + "nodeType": "YulLiteral", + "src": "1448:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1437:2:19", + "nodeType": "YulIdentifier", + "src": "1437:2:19" + }, + "nativeSrc": "1437:30:19", + "nodeType": "YulFunctionCall", + "src": "1437:30:19" + }, + "nativeSrc": "1434:56:19", + "nodeType": "YulIf", + "src": "1434:56:19" + }, + { + "nativeSrc": "1500:37:19", + "nodeType": "YulAssignment", + "src": "1500:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:19", + "nodeType": "YulIdentifier", + "src": "1530:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:19", + "nodeType": "YulIdentifier", + "src": "1508:21:19" + }, + "nativeSrc": "1508:29:19", + "nodeType": "YulFunctionCall", + "src": "1508:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1500:4:19", + "nodeType": "YulIdentifier", + "src": "1500:4:19" + } + ] + }, + { + "nativeSrc": "1574:23:19", + "nodeType": "YulAssignment", + "src": "1574:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1586:4:19", + "nodeType": "YulIdentifier", + "src": "1586:4:19" + }, + { + "kind": "number", + "nativeSrc": "1592:4:19", + "nodeType": "YulLiteral", + "src": "1592:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:19", + "nodeType": "YulIdentifier", + "src": "1582:3:19" + }, + "nativeSrc": "1582:15:19", + "nodeType": "YulFunctionCall", + "src": "1582:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1574:4:19", + "nodeType": "YulIdentifier", + "src": "1574:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1347:6:19", + "nodeType": "YulTypedName", + "src": "1347:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1358:4:19", + "nodeType": "YulTypedName", + "src": "1358:4:19", + "type": "" + } + ], + "src": "1296:308:19" + }, + { + "body": { + "nativeSrc": "1672:186:19", + "nodeType": "YulBlock", + "src": "1672:186:19", + "statements": [ + { + "nativeSrc": "1683:10:19", + "nodeType": "YulVariableDeclaration", + "src": "1683:10:19", + "value": { + "kind": "number", + "nativeSrc": "1692:1:19", + "nodeType": "YulLiteral", + "src": "1692:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1687:1:19", + "nodeType": "YulTypedName", + "src": "1687:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1752:63:19", + "nodeType": "YulBlock", + "src": "1752:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1777:3:19", + "nodeType": "YulIdentifier", + "src": "1777:3:19" + }, + { + "name": "i", + "nativeSrc": "1782:1:19", + "nodeType": "YulIdentifier", + "src": "1782:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1773:3:19", + "nodeType": "YulIdentifier", + "src": "1773:3:19" + }, + "nativeSrc": "1773:11:19", + "nodeType": "YulFunctionCall", + "src": "1773:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1796:3:19", + "nodeType": "YulIdentifier", + "src": "1796:3:19" + }, + { + "name": "i", + "nativeSrc": "1801:1:19", + "nodeType": "YulIdentifier", + "src": "1801:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1792:3:19", + "nodeType": "YulIdentifier", + "src": "1792:3:19" + }, + "nativeSrc": "1792:11:19", + "nodeType": "YulFunctionCall", + "src": "1792:11:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1786:5:19", + "nodeType": "YulIdentifier", + "src": "1786:5:19" + }, + "nativeSrc": "1786:18:19", + "nodeType": "YulFunctionCall", + "src": "1786:18:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1766:6:19", + "nodeType": "YulIdentifier", + "src": "1766:6:19" + }, + "nativeSrc": "1766:39:19", + "nodeType": "YulFunctionCall", + "src": "1766:39:19" + }, + "nativeSrc": "1766:39:19", + "nodeType": "YulExpressionStatement", + "src": "1766:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1713:1:19", + "nodeType": "YulIdentifier", + "src": "1713:1:19" + }, + { + "name": "length", + "nativeSrc": "1716:6:19", + "nodeType": "YulIdentifier", + "src": "1716:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1710:2:19", + "nodeType": "YulIdentifier", + "src": "1710:2:19" + }, + "nativeSrc": "1710:13:19", + "nodeType": "YulFunctionCall", + "src": "1710:13:19" + }, + "nativeSrc": "1702:113:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1724:19:19", + "nodeType": "YulBlock", + "src": "1724:19:19", + "statements": [ + { + "nativeSrc": "1726:15:19", + "nodeType": "YulAssignment", + "src": "1726:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1735:1:19", + "nodeType": "YulIdentifier", + "src": "1735:1:19" + }, + { + "kind": "number", + "nativeSrc": "1738:2:19", + "nodeType": "YulLiteral", + "src": "1738:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1731:3:19", + "nodeType": "YulIdentifier", + "src": "1731:3:19" + }, + "nativeSrc": "1731:10:19", + "nodeType": "YulFunctionCall", + "src": "1731:10:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1726:1:19", + "nodeType": "YulIdentifier", + "src": "1726:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1706:3:19", + "nodeType": "YulBlock", + "src": "1706:3:19", + "statements": [] + }, + "src": "1702:113:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1835:3:19", + "nodeType": "YulIdentifier", + "src": "1835:3:19" + }, + { + "name": "length", + "nativeSrc": "1840:6:19", + "nodeType": "YulIdentifier", + "src": "1840:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1831:3:19", + "nodeType": "YulIdentifier", + "src": "1831:3:19" + }, + "nativeSrc": "1831:16:19", + "nodeType": "YulFunctionCall", + "src": "1831:16:19" + }, + { + "kind": "number", + "nativeSrc": "1849:1:19", + "nodeType": "YulLiteral", + "src": "1849:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1824:6:19", + "nodeType": "YulIdentifier", + "src": "1824:6:19" + }, + "nativeSrc": "1824:27:19", + "nodeType": "YulFunctionCall", + "src": "1824:27:19" + }, + "nativeSrc": "1824:27:19", + "nodeType": "YulExpressionStatement", + "src": "1824:27:19" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:248:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1654:3:19", + "nodeType": "YulTypedName", + "src": "1654:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1659:3:19", + "nodeType": "YulTypedName", + "src": "1659:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1664:6:19", + "nodeType": "YulTypedName", + "src": "1664:6:19", + "type": "" + } + ], + "src": "1610:248:19" + }, + { + "body": { + "nativeSrc": "1959:339:19", + "nodeType": "YulBlock", + "src": "1959:339:19", + "statements": [ + { + "nativeSrc": "1969:75:19", + "nodeType": "YulAssignment", + "src": "1969:75:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2036:6:19", + "nodeType": "YulIdentifier", + "src": "2036:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1994:41:19", + "nodeType": "YulIdentifier", + "src": "1994:41:19" + }, + "nativeSrc": "1994:49:19", + "nodeType": "YulFunctionCall", + "src": "1994:49:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "1978:15:19", + "nodeType": "YulIdentifier", + "src": "1978:15:19" + }, + "nativeSrc": "1978:66:19", + "nodeType": "YulFunctionCall", + "src": "1978:66:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "1969:5:19", + "nodeType": "YulIdentifier", + "src": "1969:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2060:5:19", + "nodeType": "YulIdentifier", + "src": "2060:5:19" + }, + { + "name": "length", + "nativeSrc": "2067:6:19", + "nodeType": "YulIdentifier", + "src": "2067:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2053:6:19", + "nodeType": "YulIdentifier", + "src": "2053:6:19" + }, + "nativeSrc": "2053:21:19", + "nodeType": "YulFunctionCall", + "src": "2053:21:19" + }, + "nativeSrc": "2053:21:19", + "nodeType": "YulExpressionStatement", + "src": "2053:21:19" + }, + { + "nativeSrc": "2083:27:19", + "nodeType": "YulVariableDeclaration", + "src": "2083:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2098:5:19", + "nodeType": "YulIdentifier", + "src": "2098:5:19" + }, + { + "kind": "number", + "nativeSrc": "2105:4:19", + "nodeType": "YulLiteral", + "src": "2105:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2094:3:19", + "nodeType": "YulIdentifier", + "src": "2094:3:19" + }, + "nativeSrc": "2094:16:19", + "nodeType": "YulFunctionCall", + "src": "2094:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2087:3:19", + "nodeType": "YulTypedName", + "src": "2087:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2148:83:19", + "nodeType": "YulBlock", + "src": "2148:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2150:77:19", + "nodeType": "YulIdentifier", + "src": "2150:77:19" + }, + "nativeSrc": "2150:79:19", + "nodeType": "YulFunctionCall", + "src": "2150:79:19" + }, + "nativeSrc": "2150:79:19", + "nodeType": "YulExpressionStatement", + "src": "2150:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2129:3:19", + "nodeType": "YulIdentifier", + "src": "2129:3:19" + }, + { + "name": "length", + "nativeSrc": "2134:6:19", + "nodeType": "YulIdentifier", + "src": "2134:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2125:3:19", + "nodeType": "YulIdentifier", + "src": "2125:3:19" + }, + "nativeSrc": "2125:16:19", + "nodeType": "YulFunctionCall", + "src": "2125:16:19" + }, + { + "name": "end", + "nativeSrc": "2143:3:19", + "nodeType": "YulIdentifier", + "src": "2143:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2122:2:19", + "nodeType": "YulIdentifier", + "src": "2122:2:19" + }, + "nativeSrc": "2122:25:19", + "nodeType": "YulFunctionCall", + "src": "2122:25:19" + }, + "nativeSrc": "2119:112:19", + "nodeType": "YulIf", + "src": "2119:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2275:3:19", + "nodeType": "YulIdentifier", + "src": "2275:3:19" + }, + { + "name": "dst", + "nativeSrc": "2280:3:19", + "nodeType": "YulIdentifier", + "src": "2280:3:19" + }, + { + "name": "length", + "nativeSrc": "2285:6:19", + "nodeType": "YulIdentifier", + "src": "2285:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2240:34:19", + "nodeType": "YulIdentifier", + "src": "2240:34:19" + }, + "nativeSrc": "2240:52:19", + "nodeType": "YulFunctionCall", + "src": "2240:52:19" + }, + "nativeSrc": "2240:52:19", + "nodeType": "YulExpressionStatement", + "src": "2240:52:19" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1864:434:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1932:3:19", + "nodeType": "YulTypedName", + "src": "1932:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1937:6:19", + "nodeType": "YulTypedName", + "src": "1937:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1945:3:19", + "nodeType": "YulTypedName", + "src": "1945:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "1953:5:19", + "nodeType": "YulTypedName", + "src": "1953:5:19", + "type": "" + } + ], + "src": "1864:434:19" + }, + { + "body": { + "nativeSrc": "2391:282:19", + "nodeType": "YulBlock", + "src": "2391:282:19", + "statements": [ + { + "body": { + "nativeSrc": "2440:83:19", + "nodeType": "YulBlock", + "src": "2440:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2442:77:19", + "nodeType": "YulIdentifier", + "src": "2442:77:19" + }, + "nativeSrc": "2442:79:19", + "nodeType": "YulFunctionCall", + "src": "2442:79:19" + }, + "nativeSrc": "2442:79:19", + "nodeType": "YulExpressionStatement", + "src": "2442:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2419:6:19", + "nodeType": "YulIdentifier", + "src": "2419:6:19" + }, + { + "kind": "number", + "nativeSrc": "2427:4:19", + "nodeType": "YulLiteral", + "src": "2427:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2415:3:19", + "nodeType": "YulIdentifier", + "src": "2415:3:19" + }, + "nativeSrc": "2415:17:19", + "nodeType": "YulFunctionCall", + "src": "2415:17:19" + }, + { + "name": "end", + "nativeSrc": "2434:3:19", + "nodeType": "YulIdentifier", + "src": "2434:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2411:3:19", + "nodeType": "YulIdentifier", + "src": "2411:3:19" + }, + "nativeSrc": "2411:27:19", + "nodeType": "YulFunctionCall", + "src": "2411:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2404:6:19", + "nodeType": "YulIdentifier", + "src": "2404:6:19" + }, + "nativeSrc": "2404:35:19", + "nodeType": "YulFunctionCall", + "src": "2404:35:19" + }, + "nativeSrc": "2401:122:19", + "nodeType": "YulIf", + "src": "2401:122:19" + }, + { + "nativeSrc": "2532:27:19", + "nodeType": "YulVariableDeclaration", + "src": "2532:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2552:6:19", + "nodeType": "YulIdentifier", + "src": "2552:6:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2546:5:19", + "nodeType": "YulIdentifier", + "src": "2546:5:19" + }, + "nativeSrc": "2546:13:19", + "nodeType": "YulFunctionCall", + "src": "2546:13:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2536:6:19", + "nodeType": "YulTypedName", + "src": "2536:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2568:99:19", + "nodeType": "YulAssignment", + "src": "2568:99:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2640:6:19", + "nodeType": "YulIdentifier", + "src": "2640:6:19" + }, + { + "kind": "number", + "nativeSrc": "2648:4:19", + "nodeType": "YulLiteral", + "src": "2648:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2636:3:19", + "nodeType": "YulIdentifier", + "src": "2636:3:19" + }, + "nativeSrc": "2636:17:19", + "nodeType": "YulFunctionCall", + "src": "2636:17:19" + }, + { + "name": "length", + "nativeSrc": "2655:6:19", + "nodeType": "YulIdentifier", + "src": "2655:6:19" + }, + { + "name": "end", + "nativeSrc": "2663:3:19", + "nodeType": "YulIdentifier", + "src": "2663:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2577:58:19", + "nodeType": "YulIdentifier", + "src": "2577:58:19" + }, + "nativeSrc": "2577:90:19", + "nodeType": "YulFunctionCall", + "src": "2577:90:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2568:5:19", + "nodeType": "YulIdentifier", + "src": "2568:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2318:355:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2369:6:19", + "nodeType": "YulTypedName", + "src": "2369:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2377:3:19", + "nodeType": "YulTypedName", + "src": "2377:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2385:5:19", + "nodeType": "YulTypedName", + "src": "2385:5:19", + "type": "" + } + ], + "src": "2318:355:19" + }, + { + "body": { + "nativeSrc": "2766:437:19", + "nodeType": "YulBlock", + "src": "2766:437:19", + "statements": [ + { + "body": { + "nativeSrc": "2812:83:19", + "nodeType": "YulBlock", + "src": "2812:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2814:77:19", + "nodeType": "YulIdentifier", + "src": "2814:77:19" + }, + "nativeSrc": "2814:79:19", + "nodeType": "YulFunctionCall", + "src": "2814:79:19" + }, + "nativeSrc": "2814:79:19", + "nodeType": "YulExpressionStatement", + "src": "2814:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2787:7:19", + "nodeType": "YulIdentifier", + "src": "2787:7:19" + }, + { + "name": "headStart", + "nativeSrc": "2796:9:19", + "nodeType": "YulIdentifier", + "src": "2796:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2783:3:19", + "nodeType": "YulIdentifier", + "src": "2783:3:19" + }, + "nativeSrc": "2783:23:19", + "nodeType": "YulFunctionCall", + "src": "2783:23:19" + }, + { + "kind": "number", + "nativeSrc": "2808:2:19", + "nodeType": "YulLiteral", + "src": "2808:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2779:3:19", + "nodeType": "YulIdentifier", + "src": "2779:3:19" + }, + "nativeSrc": "2779:32:19", + "nodeType": "YulFunctionCall", + "src": "2779:32:19" + }, + "nativeSrc": "2776:119:19", + "nodeType": "YulIf", + "src": "2776:119:19" + }, + { + "nativeSrc": "2905:291:19", + "nodeType": "YulBlock", + "src": "2905:291:19", + "statements": [ + { + "nativeSrc": "2920:38:19", + "nodeType": "YulVariableDeclaration", + "src": "2920:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2944:9:19", + "nodeType": "YulIdentifier", + "src": "2944:9:19" + }, + { + "kind": "number", + "nativeSrc": "2955:1:19", + "nodeType": "YulLiteral", + "src": "2955:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2940:3:19", + "nodeType": "YulIdentifier", + "src": "2940:3:19" + }, + "nativeSrc": "2940:17:19", + "nodeType": "YulFunctionCall", + "src": "2940:17:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2934:5:19", + "nodeType": "YulIdentifier", + "src": "2934:5:19" + }, + "nativeSrc": "2934:24:19", + "nodeType": "YulFunctionCall", + "src": "2934:24:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2924:6:19", + "nodeType": "YulTypedName", + "src": "2924:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3005:83:19", + "nodeType": "YulBlock", + "src": "3005:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3007:77:19", + "nodeType": "YulIdentifier", + "src": "3007:77:19" + }, + "nativeSrc": "3007:79:19", + "nodeType": "YulFunctionCall", + "src": "3007:79:19" + }, + "nativeSrc": "3007:79:19", + "nodeType": "YulExpressionStatement", + "src": "3007:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2977:6:19", + "nodeType": "YulIdentifier", + "src": "2977:6:19" + }, + { + "kind": "number", + "nativeSrc": "2985:18:19", + "nodeType": "YulLiteral", + "src": "2985:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2974:2:19", + "nodeType": "YulIdentifier", + "src": "2974:2:19" + }, + "nativeSrc": "2974:30:19", + "nodeType": "YulFunctionCall", + "src": "2974:30:19" + }, + "nativeSrc": "2971:117:19", + "nodeType": "YulIf", + "src": "2971:117:19" + }, + { + "nativeSrc": "3102:84:19", + "nodeType": "YulAssignment", + "src": "3102:84:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3158:9:19", + "nodeType": "YulIdentifier", + "src": "3158:9:19" + }, + { + "name": "offset", + "nativeSrc": "3169:6:19", + "nodeType": "YulIdentifier", + "src": "3169:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3154:3:19", + "nodeType": "YulIdentifier", + "src": "3154:3:19" + }, + "nativeSrc": "3154:22:19", + "nodeType": "YulFunctionCall", + "src": "3154:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "3178:7:19", + "nodeType": "YulIdentifier", + "src": "3178:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3112:41:19", + "nodeType": "YulIdentifier", + "src": "3112:41:19" + }, + "nativeSrc": "3112:74:19", + "nodeType": "YulFunctionCall", + "src": "3112:74:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3102:6:19", + "nodeType": "YulIdentifier", + "src": "3102:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2679:524:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2736:9:19", + "nodeType": "YulTypedName", + "src": "2736:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2747:7:19", + "nodeType": "YulTypedName", + "src": "2747:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2759:6:19", + "nodeType": "YulTypedName", + "src": "2759:6:19", + "type": "" + } + ], + "src": "2679:524:19" + }, + { + "body": { + "nativeSrc": "3268:40:19", + "nodeType": "YulBlock", + "src": "3268:40:19", + "statements": [ + { + "nativeSrc": "3279:22:19", + "nodeType": "YulAssignment", + "src": "3279:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3295:5:19", + "nodeType": "YulIdentifier", + "src": "3295:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3289:5:19", + "nodeType": "YulIdentifier", + "src": "3289:5:19" + }, + "nativeSrc": "3289:12:19", + "nodeType": "YulFunctionCall", + "src": "3289:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3279:6:19", + "nodeType": "YulIdentifier", + "src": "3279:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3209:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3251:5:19", + "nodeType": "YulTypedName", + "src": "3251:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3261:6:19", + "nodeType": "YulTypedName", + "src": "3261:6:19", + "type": "" + } + ], + "src": "3209:99:19" + }, + { + "body": { + "nativeSrc": "3342:152:19", + "nodeType": "YulBlock", + "src": "3342:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3359:1:19", + "nodeType": "YulLiteral", + "src": "3359:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3362:77:19", + "nodeType": "YulLiteral", + "src": "3362:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3352:6:19", + "nodeType": "YulIdentifier", + "src": "3352:6:19" + }, + "nativeSrc": "3352:88:19", + "nodeType": "YulFunctionCall", + "src": "3352:88:19" + }, + "nativeSrc": "3352:88:19", + "nodeType": "YulExpressionStatement", + "src": "3352:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3456:1:19", + "nodeType": "YulLiteral", + "src": "3456:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3459:4:19", + "nodeType": "YulLiteral", + "src": "3459:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3449:6:19", + "nodeType": "YulIdentifier", + "src": "3449:6:19" + }, + "nativeSrc": "3449:15:19", + "nodeType": "YulFunctionCall", + "src": "3449:15:19" + }, + "nativeSrc": "3449:15:19", + "nodeType": "YulExpressionStatement", + "src": "3449:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3480:1:19", + "nodeType": "YulLiteral", + "src": "3480:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3483:4:19", + "nodeType": "YulLiteral", + "src": "3483:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3473:6:19", + "nodeType": "YulIdentifier", + "src": "3473:6:19" + }, + "nativeSrc": "3473:15:19", + "nodeType": "YulFunctionCall", + "src": "3473:15:19" + }, + "nativeSrc": "3473:15:19", + "nodeType": "YulExpressionStatement", + "src": "3473:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "3314:180:19", + "nodeType": "YulFunctionDefinition", + "src": "3314:180:19" + }, + { + "body": { + "nativeSrc": "3551:269:19", + "nodeType": "YulBlock", + "src": "3551:269:19", + "statements": [ + { + "nativeSrc": "3561:22:19", + "nodeType": "YulAssignment", + "src": "3561:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3575:4:19", + "nodeType": "YulIdentifier", + "src": "3575:4:19" + }, + { + "kind": "number", + "nativeSrc": "3581:1:19", + "nodeType": "YulLiteral", + "src": "3581:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3571:3:19", + "nodeType": "YulIdentifier", + "src": "3571:3:19" + }, + "nativeSrc": "3571:12:19", + "nodeType": "YulFunctionCall", + "src": "3571:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3561:6:19", + "nodeType": "YulIdentifier", + "src": "3561:6:19" + } + ] + }, + { + "nativeSrc": "3592:38:19", + "nodeType": "YulVariableDeclaration", + "src": "3592:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3622:4:19", + "nodeType": "YulIdentifier", + "src": "3622:4:19" + }, + { + "kind": "number", + "nativeSrc": "3628:1:19", + "nodeType": "YulLiteral", + "src": "3628:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3618:3:19", + "nodeType": "YulIdentifier", + "src": "3618:3:19" + }, + "nativeSrc": "3618:12:19", + "nodeType": "YulFunctionCall", + "src": "3618:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3596:18:19", + "nodeType": "YulTypedName", + "src": "3596:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3669:51:19", + "nodeType": "YulBlock", + "src": "3669:51:19", + "statements": [ + { + "nativeSrc": "3683:27:19", + "nodeType": "YulAssignment", + "src": "3683:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3697:6:19", + "nodeType": "YulIdentifier", + "src": "3697:6:19" + }, + { + "kind": "number", + "nativeSrc": "3705:4:19", + "nodeType": "YulLiteral", + "src": "3705:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3693:3:19", + "nodeType": "YulIdentifier", + "src": "3693:3:19" + }, + "nativeSrc": "3693:17:19", + "nodeType": "YulFunctionCall", + "src": "3693:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3683:6:19", + "nodeType": "YulIdentifier", + "src": "3683:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3649:18:19", + "nodeType": "YulIdentifier", + "src": "3649:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3642:6:19", + "nodeType": "YulIdentifier", + "src": "3642:6:19" + }, + "nativeSrc": "3642:26:19", + "nodeType": "YulFunctionCall", + "src": "3642:26:19" + }, + "nativeSrc": "3639:81:19", + "nodeType": "YulIf", + "src": "3639:81:19" + }, + { + "body": { + "nativeSrc": "3772:42:19", + "nodeType": "YulBlock", + "src": "3772:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "3786:16:19", + "nodeType": "YulIdentifier", + "src": "3786:16:19" + }, + "nativeSrc": "3786:18:19", + "nodeType": "YulFunctionCall", + "src": "3786:18:19" + }, + "nativeSrc": "3786:18:19", + "nodeType": "YulExpressionStatement", + "src": "3786:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3736:18:19", + "nodeType": "YulIdentifier", + "src": "3736:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3759:6:19", + "nodeType": "YulIdentifier", + "src": "3759:6:19" + }, + { + "kind": "number", + "nativeSrc": "3767:2:19", + "nodeType": "YulLiteral", + "src": "3767:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3756:2:19", + "nodeType": "YulIdentifier", + "src": "3756:2:19" + }, + "nativeSrc": "3756:14:19", + "nodeType": "YulFunctionCall", + "src": "3756:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3733:2:19", + "nodeType": "YulIdentifier", + "src": "3733:2:19" + }, + "nativeSrc": "3733:38:19", + "nodeType": "YulFunctionCall", + "src": "3733:38:19" + }, + "nativeSrc": "3730:84:19", + "nodeType": "YulIf", + "src": "3730:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3500:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3535:4:19", + "nodeType": "YulTypedName", + "src": "3535:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3544:6:19", + "nodeType": "YulTypedName", + "src": "3544:6:19", + "type": "" + } + ], + "src": "3500:320:19" + }, + { + "body": { + "nativeSrc": "3880:87:19", + "nodeType": "YulBlock", + "src": "3880:87:19", + "statements": [ + { + "nativeSrc": "3890:11:19", + "nodeType": "YulAssignment", + "src": "3890:11:19", + "value": { + "name": "ptr", + "nativeSrc": "3898:3:19", + "nodeType": "YulIdentifier", + "src": "3898:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3890:4:19", + "nodeType": "YulIdentifier", + "src": "3890:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3918:1:19", + "nodeType": "YulLiteral", + "src": "3918:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3921:3:19", + "nodeType": "YulIdentifier", + "src": "3921:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3911:6:19", + "nodeType": "YulIdentifier", + "src": "3911:6:19" + }, + "nativeSrc": "3911:14:19", + "nodeType": "YulFunctionCall", + "src": "3911:14:19" + }, + "nativeSrc": "3911:14:19", + "nodeType": "YulExpressionStatement", + "src": "3911:14:19" + }, + { + "nativeSrc": "3934:26:19", + "nodeType": "YulAssignment", + "src": "3934:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3952:1:19", + "nodeType": "YulLiteral", + "src": "3952:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3955:4:19", + "nodeType": "YulLiteral", + "src": "3955:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3942:9:19", + "nodeType": "YulIdentifier", + "src": "3942:9:19" + }, + "nativeSrc": "3942:18:19", + "nodeType": "YulFunctionCall", + "src": "3942:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3934:4:19", + "nodeType": "YulIdentifier", + "src": "3934:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3826:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3867:3:19", + "nodeType": "YulTypedName", + "src": "3867:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3875:4:19", + "nodeType": "YulTypedName", + "src": "3875:4:19", + "type": "" + } + ], + "src": "3826:141:19" + }, + { + "body": { + "nativeSrc": "4017:49:19", + "nodeType": "YulBlock", + "src": "4017:49:19", + "statements": [ + { + "nativeSrc": "4027:33:19", + "nodeType": "YulAssignment", + "src": "4027:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4045:5:19", + "nodeType": "YulIdentifier", + "src": "4045:5:19" + }, + { + "kind": "number", + "nativeSrc": "4052:2:19", + "nodeType": "YulLiteral", + "src": "4052:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4041:3:19", + "nodeType": "YulIdentifier", + "src": "4041:3:19" + }, + "nativeSrc": "4041:14:19", + "nodeType": "YulFunctionCall", + "src": "4041:14:19" + }, + { + "kind": "number", + "nativeSrc": "4057:2:19", + "nodeType": "YulLiteral", + "src": "4057:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4037:3:19", + "nodeType": "YulIdentifier", + "src": "4037:3:19" + }, + "nativeSrc": "4037:23:19", + "nodeType": "YulFunctionCall", + "src": "4037:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4027:6:19", + "nodeType": "YulIdentifier", + "src": "4027:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3973:93:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4000:5:19", + "nodeType": "YulTypedName", + "src": "4000:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4010:6:19", + "nodeType": "YulTypedName", + "src": "4010:6:19", + "type": "" + } + ], + "src": "3973:93:19" + }, + { + "body": { + "nativeSrc": "4125:54:19", + "nodeType": "YulBlock", + "src": "4125:54:19", + "statements": [ + { + "nativeSrc": "4135:37:19", + "nodeType": "YulAssignment", + "src": "4135:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4160:4:19", + "nodeType": "YulIdentifier", + "src": "4160:4:19" + }, + { + "name": "value", + "nativeSrc": "4166:5:19", + "nodeType": "YulIdentifier", + "src": "4166:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4156:3:19", + "nodeType": "YulIdentifier", + "src": "4156:3:19" + }, + "nativeSrc": "4156:16:19", + "nodeType": "YulFunctionCall", + "src": "4156:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4135:8:19", + "nodeType": "YulIdentifier", + "src": "4135:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4072:107:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4100:4:19", + "nodeType": "YulTypedName", + "src": "4100:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4106:5:19", + "nodeType": "YulTypedName", + "src": "4106:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4116:8:19", + "nodeType": "YulTypedName", + "src": "4116:8:19", + "type": "" + } + ], + "src": "4072:107:19" + }, + { + "body": { + "nativeSrc": "4261:317:19", + "nodeType": "YulBlock", + "src": "4261:317:19", + "statements": [ + { + "nativeSrc": "4271:35:19", + "nodeType": "YulVariableDeclaration", + "src": "4271:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "4292:10:19", + "nodeType": "YulIdentifier", + "src": "4292:10:19" + }, + { + "kind": "number", + "nativeSrc": "4304:1:19", + "nodeType": "YulLiteral", + "src": "4304:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4288:3:19", + "nodeType": "YulIdentifier", + "src": "4288:3:19" + }, + "nativeSrc": "4288:18:19", + "nodeType": "YulFunctionCall", + "src": "4288:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4275:9:19", + "nodeType": "YulTypedName", + "src": "4275:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4315:109:19", + "nodeType": "YulVariableDeclaration", + "src": "4315:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4346:9:19", + "nodeType": "YulIdentifier", + "src": "4346:9:19" + }, + { + "kind": "number", + "nativeSrc": "4357:66:19", + "nodeType": "YulLiteral", + "src": "4357:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4327:18:19", + "nodeType": "YulIdentifier", + "src": "4327:18:19" + }, + "nativeSrc": "4327:97:19", + "nodeType": "YulFunctionCall", + "src": "4327:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4319:4:19", + "nodeType": "YulTypedName", + "src": "4319:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4433:51:19", + "nodeType": "YulAssignment", + "src": "4433:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4464:9:19", + "nodeType": "YulIdentifier", + "src": "4464:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "4475:8:19", + "nodeType": "YulIdentifier", + "src": "4475:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4445:18:19", + "nodeType": "YulIdentifier", + "src": "4445:18:19" + }, + "nativeSrc": "4445:39:19", + "nodeType": "YulFunctionCall", + "src": "4445:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "4433:8:19", + "nodeType": "YulIdentifier", + "src": "4433:8:19" + } + ] + }, + { + "nativeSrc": "4493:30:19", + "nodeType": "YulAssignment", + "src": "4493:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4506:5:19", + "nodeType": "YulIdentifier", + "src": "4506:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "4517:4:19", + "nodeType": "YulIdentifier", + "src": "4517:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4513:3:19", + "nodeType": "YulIdentifier", + "src": "4513:3:19" + }, + "nativeSrc": "4513:9:19", + "nodeType": "YulFunctionCall", + "src": "4513:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4502:3:19", + "nodeType": "YulIdentifier", + "src": "4502:3:19" + }, + "nativeSrc": "4502:21:19", + "nodeType": "YulFunctionCall", + "src": "4502:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4493:5:19", + "nodeType": "YulIdentifier", + "src": "4493:5:19" + } + ] + }, + { + "nativeSrc": "4532:40:19", + "nodeType": "YulAssignment", + "src": "4532:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4545:5:19", + "nodeType": "YulIdentifier", + "src": "4545:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "4556:8:19", + "nodeType": "YulIdentifier", + "src": "4556:8:19" + }, + { + "name": "mask", + "nativeSrc": "4566:4:19", + "nodeType": "YulIdentifier", + "src": "4566:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4552:3:19", + "nodeType": "YulIdentifier", + "src": "4552:3:19" + }, + "nativeSrc": "4552:19:19", + "nodeType": "YulFunctionCall", + "src": "4552:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4542:2:19", + "nodeType": "YulIdentifier", + "src": "4542:2:19" + }, + "nativeSrc": "4542:30:19", + "nodeType": "YulFunctionCall", + "src": "4542:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4532:6:19", + "nodeType": "YulIdentifier", + "src": "4532:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4185:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4222:5:19", + "nodeType": "YulTypedName", + "src": "4222:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "4229:10:19", + "nodeType": "YulTypedName", + "src": "4229:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4241:8:19", + "nodeType": "YulTypedName", + "src": "4241:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4254:6:19", + "nodeType": "YulTypedName", + "src": "4254:6:19", + "type": "" + } + ], + "src": "4185:393:19" + }, + { + "body": { + "nativeSrc": "4629:32:19", + "nodeType": "YulBlock", + "src": "4629:32:19", + "statements": [ + { + "nativeSrc": "4639:16:19", + "nodeType": "YulAssignment", + "src": "4639:16:19", + "value": { + "name": "value", + "nativeSrc": "4650:5:19", + "nodeType": "YulIdentifier", + "src": "4650:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4639:7:19", + "nodeType": "YulIdentifier", + "src": "4639:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "4584:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4611:5:19", + "nodeType": "YulTypedName", + "src": "4611:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4621:7:19", + "nodeType": "YulTypedName", + "src": "4621:7:19", + "type": "" + } + ], + "src": "4584:77:19" + }, + { + "body": { + "nativeSrc": "4699:28:19", + "nodeType": "YulBlock", + "src": "4699:28:19", + "statements": [ + { + "nativeSrc": "4709:12:19", + "nodeType": "YulAssignment", + "src": "4709:12:19", + "value": { + "name": "value", + "nativeSrc": "4716:5:19", + "nodeType": "YulIdentifier", + "src": "4716:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4709:3:19", + "nodeType": "YulIdentifier", + "src": "4709:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4667:60:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4685:5:19", + "nodeType": "YulTypedName", + "src": "4685:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4695:3:19", + "nodeType": "YulTypedName", + "src": "4695:3:19", + "type": "" + } + ], + "src": "4667:60:19" + }, + { + "body": { + "nativeSrc": "4793:82:19", + "nodeType": "YulBlock", + "src": "4793:82:19", + "statements": [ + { + "nativeSrc": "4803:66:19", + "nodeType": "YulAssignment", + "src": "4803:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4861:5:19", + "nodeType": "YulIdentifier", + "src": "4861:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4843:17:19", + "nodeType": "YulIdentifier", + "src": "4843:17:19" + }, + "nativeSrc": "4843:24:19", + "nodeType": "YulFunctionCall", + "src": "4843:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4834:8:19", + "nodeType": "YulIdentifier", + "src": "4834:8:19" + }, + "nativeSrc": "4834:34:19", + "nodeType": "YulFunctionCall", + "src": "4834:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4816:17:19", + "nodeType": "YulIdentifier", + "src": "4816:17:19" + }, + "nativeSrc": "4816:53:19", + "nodeType": "YulFunctionCall", + "src": "4816:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4803:9:19", + "nodeType": "YulIdentifier", + "src": "4803:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4733:142:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4773:5:19", + "nodeType": "YulTypedName", + "src": "4773:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4783:9:19", + "nodeType": "YulTypedName", + "src": "4783:9:19", + "type": "" + } + ], + "src": "4733:142:19" + }, + { + "body": { + "nativeSrc": "4928:28:19", + "nodeType": "YulBlock", + "src": "4928:28:19", + "statements": [ + { + "nativeSrc": "4938:12:19", + "nodeType": "YulAssignment", + "src": "4938:12:19", + "value": { + "name": "value", + "nativeSrc": "4945:5:19", + "nodeType": "YulIdentifier", + "src": "4945:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4938:3:19", + "nodeType": "YulIdentifier", + "src": "4938:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "4881:75:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4914:5:19", + "nodeType": "YulTypedName", + "src": "4914:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4924:3:19", + "nodeType": "YulTypedName", + "src": "4924:3:19", + "type": "" + } + ], + "src": "4881:75:19" + }, + { + "body": { + "nativeSrc": "5038:193:19", + "nodeType": "YulBlock", + "src": "5038:193:19", + "statements": [ + { + "nativeSrc": "5048:63:19", + "nodeType": "YulVariableDeclaration", + "src": "5048:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "5103:7:19", + "nodeType": "YulIdentifier", + "src": "5103:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5072:30:19", + "nodeType": "YulIdentifier", + "src": "5072:30:19" + }, + "nativeSrc": "5072:39:19", + "nodeType": "YulFunctionCall", + "src": "5072:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "5052:16:19", + "nodeType": "YulTypedName", + "src": "5052:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5127:4:19", + "nodeType": "YulIdentifier", + "src": "5127:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5167:4:19", + "nodeType": "YulIdentifier", + "src": "5167:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5161:5:19", + "nodeType": "YulIdentifier", + "src": "5161:5:19" + }, + "nativeSrc": "5161:11:19", + "nodeType": "YulFunctionCall", + "src": "5161:11:19" + }, + { + "name": "offset", + "nativeSrc": "5174:6:19", + "nodeType": "YulIdentifier", + "src": "5174:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5206:16:19", + "nodeType": "YulIdentifier", + "src": "5206:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5182:23:19", + "nodeType": "YulIdentifier", + "src": "5182:23:19" + }, + "nativeSrc": "5182:41:19", + "nodeType": "YulFunctionCall", + "src": "5182:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5133:27:19", + "nodeType": "YulIdentifier", + "src": "5133:27:19" + }, + "nativeSrc": "5133:91:19", + "nodeType": "YulFunctionCall", + "src": "5133:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5120:6:19", + "nodeType": "YulIdentifier", + "src": "5120:6:19" + }, + "nativeSrc": "5120:105:19", + "nodeType": "YulFunctionCall", + "src": "5120:105:19" + }, + "nativeSrc": "5120:105:19", + "nodeType": "YulExpressionStatement", + "src": "5120:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4962:269:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5015:4:19", + "nodeType": "YulTypedName", + "src": "5015:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5021:6:19", + "nodeType": "YulTypedName", + "src": "5021:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5029:7:19", + "nodeType": "YulTypedName", + "src": "5029:7:19", + "type": "" + } + ], + "src": "4962:269:19" + }, + { + "body": { + "nativeSrc": "5286:24:19", + "nodeType": "YulBlock", + "src": "5286:24:19", + "statements": [ + { + "nativeSrc": "5296:8:19", + "nodeType": "YulAssignment", + "src": "5296:8:19", + "value": { + "kind": "number", + "nativeSrc": "5303:1:19", + "nodeType": "YulLiteral", + "src": "5303:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5296:3:19", + "nodeType": "YulIdentifier", + "src": "5296:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5237:73:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5282:3:19", + "nodeType": "YulTypedName", + "src": "5282:3:19", + "type": "" + } + ], + "src": "5237:73:19" + }, + { + "body": { + "nativeSrc": "5369:136:19", + "nodeType": "YulBlock", + "src": "5369:136:19", + "statements": [ + { + "nativeSrc": "5379:46:19", + "nodeType": "YulVariableDeclaration", + "src": "5379:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5393:30:19", + "nodeType": "YulIdentifier", + "src": "5393:30:19" + }, + "nativeSrc": "5393:32:19", + "nodeType": "YulFunctionCall", + "src": "5393:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5383:6:19", + "nodeType": "YulTypedName", + "src": "5383:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5478:4:19", + "nodeType": "YulIdentifier", + "src": "5478:4:19" + }, + { + "name": "offset", + "nativeSrc": "5484:6:19", + "nodeType": "YulIdentifier", + "src": "5484:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "5492:6:19", + "nodeType": "YulIdentifier", + "src": "5492:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5434:43:19", + "nodeType": "YulIdentifier", + "src": "5434:43:19" + }, + "nativeSrc": "5434:65:19", + "nodeType": "YulFunctionCall", + "src": "5434:65:19" + }, + "nativeSrc": "5434:65:19", + "nodeType": "YulExpressionStatement", + "src": "5434:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5316:189:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5355:4:19", + "nodeType": "YulTypedName", + "src": "5355:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5361:6:19", + "nodeType": "YulTypedName", + "src": "5361:6:19", + "type": "" + } + ], + "src": "5316:189:19" + }, + { + "body": { + "nativeSrc": "5561:136:19", + "nodeType": "YulBlock", + "src": "5561:136:19", + "statements": [ + { + "body": { + "nativeSrc": "5628:63:19", + "nodeType": "YulBlock", + "src": "5628:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5672:5:19", + "nodeType": "YulIdentifier", + "src": "5672:5:19" + }, + { + "kind": "number", + "nativeSrc": "5679:1:19", + "nodeType": "YulLiteral", + "src": "5679:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5642:29:19", + "nodeType": "YulIdentifier", + "src": "5642:29:19" + }, + "nativeSrc": "5642:39:19", + "nodeType": "YulFunctionCall", + "src": "5642:39:19" + }, + "nativeSrc": "5642:39:19", + "nodeType": "YulExpressionStatement", + "src": "5642:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5581:5:19", + "nodeType": "YulIdentifier", + "src": "5581:5:19" + }, + { + "name": "end", + "nativeSrc": "5588:3:19", + "nodeType": "YulIdentifier", + "src": "5588:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5578:2:19", + "nodeType": "YulIdentifier", + "src": "5578:2:19" + }, + "nativeSrc": "5578:14:19", + "nodeType": "YulFunctionCall", + "src": "5578:14:19" + }, + "nativeSrc": "5571:120:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5593:26:19", + "nodeType": "YulBlock", + "src": "5593:26:19", + "statements": [ + { + "nativeSrc": "5595:22:19", + "nodeType": "YulAssignment", + "src": "5595:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5608:5:19", + "nodeType": "YulIdentifier", + "src": "5608:5:19" + }, + { + "kind": "number", + "nativeSrc": "5615:1:19", + "nodeType": "YulLiteral", + "src": "5615:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5604:3:19", + "nodeType": "YulIdentifier", + "src": "5604:3:19" + }, + "nativeSrc": "5604:13:19", + "nodeType": "YulFunctionCall", + "src": "5604:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5595:5:19", + "nodeType": "YulIdentifier", + "src": "5595:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5575:2:19", + "nodeType": "YulBlock", + "src": "5575:2:19", + "statements": [] + }, + "src": "5571:120:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5511:186:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "5549:5:19", + "nodeType": "YulTypedName", + "src": "5549:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5556:3:19", + "nodeType": "YulTypedName", + "src": "5556:3:19", + "type": "" + } + ], + "src": "5511:186:19" + }, + { + "body": { + "nativeSrc": "5782:464:19", + "nodeType": "YulBlock", + "src": "5782:464:19", + "statements": [ + { + "body": { + "nativeSrc": "5808:431:19", + "nodeType": "YulBlock", + "src": "5808:431:19", + "statements": [ + { + "nativeSrc": "5822:54:19", + "nodeType": "YulVariableDeclaration", + "src": "5822:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5870:5:19", + "nodeType": "YulIdentifier", + "src": "5870:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5838:31:19", + "nodeType": "YulIdentifier", + "src": "5838:31:19" + }, + "nativeSrc": "5838:38:19", + "nodeType": "YulFunctionCall", + "src": "5838:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5826:8:19", + "nodeType": "YulTypedName", + "src": "5826:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5889:63:19", + "nodeType": "YulVariableDeclaration", + "src": "5889:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5912:8:19", + "nodeType": "YulIdentifier", + "src": "5912:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5940:10:19", + "nodeType": "YulIdentifier", + "src": "5940:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5922:17:19", + "nodeType": "YulIdentifier", + "src": "5922:17:19" + }, + "nativeSrc": "5922:29:19", + "nodeType": "YulFunctionCall", + "src": "5922:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5908:3:19", + "nodeType": "YulIdentifier", + "src": "5908:3:19" + }, + "nativeSrc": "5908:44:19", + "nodeType": "YulFunctionCall", + "src": "5908:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5893:11:19", + "nodeType": "YulTypedName", + "src": "5893:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6109:27:19", + "nodeType": "YulBlock", + "src": "6109:27:19", + "statements": [ + { + "nativeSrc": "6111:23:19", + "nodeType": "YulAssignment", + "src": "6111:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "6126:8:19", + "nodeType": "YulIdentifier", + "src": "6126:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6111:11:19", + "nodeType": "YulIdentifier", + "src": "6111:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6093:10:19", + "nodeType": "YulIdentifier", + "src": "6093:10:19" + }, + { + "kind": "number", + "nativeSrc": "6105:2:19", + "nodeType": "YulLiteral", + "src": "6105:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6090:2:19", + "nodeType": "YulIdentifier", + "src": "6090:2:19" + }, + "nativeSrc": "6090:18:19", + "nodeType": "YulFunctionCall", + "src": "6090:18:19" + }, + "nativeSrc": "6087:49:19", + "nodeType": "YulIf", + "src": "6087:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6178:11:19", + "nodeType": "YulIdentifier", + "src": "6178:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6195:8:19", + "nodeType": "YulIdentifier", + "src": "6195:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6223:3:19", + "nodeType": "YulIdentifier", + "src": "6223:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6205:17:19", + "nodeType": "YulIdentifier", + "src": "6205:17:19" + }, + "nativeSrc": "6205:22:19", + "nodeType": "YulFunctionCall", + "src": "6205:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6191:3:19", + "nodeType": "YulIdentifier", + "src": "6191:3:19" + }, + "nativeSrc": "6191:37:19", + "nodeType": "YulFunctionCall", + "src": "6191:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6149:28:19", + "nodeType": "YulIdentifier", + "src": "6149:28:19" + }, + "nativeSrc": "6149:80:19", + "nodeType": "YulFunctionCall", + "src": "6149:80:19" + }, + "nativeSrc": "6149:80:19", + "nodeType": "YulExpressionStatement", + "src": "6149:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "5799:3:19", + "nodeType": "YulIdentifier", + "src": "5799:3:19" + }, + { + "kind": "number", + "nativeSrc": "5804:2:19", + "nodeType": "YulLiteral", + "src": "5804:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5796:2:19", + "nodeType": "YulIdentifier", + "src": "5796:2:19" + }, + "nativeSrc": "5796:11:19", + "nodeType": "YulFunctionCall", + "src": "5796:11:19" + }, + "nativeSrc": "5793:446:19", + "nodeType": "YulIf", + "src": "5793:446:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5703:543:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "5758:5:19", + "nodeType": "YulTypedName", + "src": "5758:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "5765:3:19", + "nodeType": "YulTypedName", + "src": "5765:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "5770:10:19", + "nodeType": "YulTypedName", + "src": "5770:10:19", + "type": "" + } + ], + "src": "5703:543:19" + }, + { + "body": { + "nativeSrc": "6315:54:19", + "nodeType": "YulBlock", + "src": "6315:54:19", + "statements": [ + { + "nativeSrc": "6325:37:19", + "nodeType": "YulAssignment", + "src": "6325:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "6350:4:19", + "nodeType": "YulIdentifier", + "src": "6350:4:19" + }, + { + "name": "value", + "nativeSrc": "6356:5:19", + "nodeType": "YulIdentifier", + "src": "6356:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "6346:3:19", + "nodeType": "YulIdentifier", + "src": "6346:3:19" + }, + "nativeSrc": "6346:16:19", + "nodeType": "YulFunctionCall", + "src": "6346:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "6325:8:19", + "nodeType": "YulIdentifier", + "src": "6325:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6252:117:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "6290:4:19", + "nodeType": "YulTypedName", + "src": "6290:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "6296:5:19", + "nodeType": "YulTypedName", + "src": "6296:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "6306:8:19", + "nodeType": "YulTypedName", + "src": "6306:8:19", + "type": "" + } + ], + "src": "6252:117:19" + }, + { + "body": { + "nativeSrc": "6426:118:19", + "nodeType": "YulBlock", + "src": "6426:118:19", + "statements": [ + { + "nativeSrc": "6436:68:19", + "nodeType": "YulVariableDeclaration", + "src": "6436:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6485:1:19", + "nodeType": "YulLiteral", + "src": "6485:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6488:5:19", + "nodeType": "YulIdentifier", + "src": "6488:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6481:3:19", + "nodeType": "YulIdentifier", + "src": "6481:3:19" + }, + "nativeSrc": "6481:13:19", + "nodeType": "YulFunctionCall", + "src": "6481:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6500:1:19", + "nodeType": "YulLiteral", + "src": "6500:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6496:3:19", + "nodeType": "YulIdentifier", + "src": "6496:3:19" + }, + "nativeSrc": "6496:6:19", + "nodeType": "YulFunctionCall", + "src": "6496:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6452:28:19", + "nodeType": "YulIdentifier", + "src": "6452:28:19" + }, + "nativeSrc": "6452:51:19", + "nodeType": "YulFunctionCall", + "src": "6452:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6448:3:19", + "nodeType": "YulIdentifier", + "src": "6448:3:19" + }, + "nativeSrc": "6448:56:19", + "nodeType": "YulFunctionCall", + "src": "6448:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "6440:4:19", + "nodeType": "YulTypedName", + "src": "6440:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "6513:25:19", + "nodeType": "YulAssignment", + "src": "6513:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6527:4:19", + "nodeType": "YulIdentifier", + "src": "6527:4:19" + }, + { + "name": "mask", + "nativeSrc": "6533:4:19", + "nodeType": "YulIdentifier", + "src": "6533:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6523:3:19", + "nodeType": "YulIdentifier", + "src": "6523:3:19" + }, + "nativeSrc": "6523:15:19", + "nodeType": "YulFunctionCall", + "src": "6523:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6513:6:19", + "nodeType": "YulIdentifier", + "src": "6513:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "6375:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6403:4:19", + "nodeType": "YulTypedName", + "src": "6403:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "6409:5:19", + "nodeType": "YulTypedName", + "src": "6409:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6419:6:19", + "nodeType": "YulTypedName", + "src": "6419:6:19", + "type": "" + } + ], + "src": "6375:169:19" + }, + { + "body": { + "nativeSrc": "6630:214:19", + "nodeType": "YulBlock", + "src": "6630:214:19", + "statements": [ + { + "nativeSrc": "6763:37:19", + "nodeType": "YulAssignment", + "src": "6763:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6790:4:19", + "nodeType": "YulIdentifier", + "src": "6790:4:19" + }, + { + "name": "len", + "nativeSrc": "6796:3:19", + "nodeType": "YulIdentifier", + "src": "6796:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "6771:18:19", + "nodeType": "YulIdentifier", + "src": "6771:18:19" + }, + "nativeSrc": "6771:29:19", + "nodeType": "YulFunctionCall", + "src": "6771:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "6763:4:19", + "nodeType": "YulIdentifier", + "src": "6763:4:19" + } + ] + }, + { + "nativeSrc": "6809:29:19", + "nodeType": "YulAssignment", + "src": "6809:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6820:4:19", + "nodeType": "YulIdentifier", + "src": "6820:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6830:1:19", + "nodeType": "YulLiteral", + "src": "6830:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6833:3:19", + "nodeType": "YulIdentifier", + "src": "6833:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6826:3:19", + "nodeType": "YulIdentifier", + "src": "6826:3:19" + }, + "nativeSrc": "6826:11:19", + "nodeType": "YulFunctionCall", + "src": "6826:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6817:2:19", + "nodeType": "YulIdentifier", + "src": "6817:2:19" + }, + "nativeSrc": "6817:21:19", + "nodeType": "YulFunctionCall", + "src": "6817:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "6809:4:19", + "nodeType": "YulIdentifier", + "src": "6809:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6549:295:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6611:4:19", + "nodeType": "YulTypedName", + "src": "6611:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "6617:3:19", + "nodeType": "YulTypedName", + "src": "6617:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "6625:4:19", + "nodeType": "YulTypedName", + "src": "6625:4:19", + "type": "" + } + ], + "src": "6549:295:19" + }, + { + "body": { + "nativeSrc": "6941:1303:19", + "nodeType": "YulBlock", + "src": "6941:1303:19", + "statements": [ + { + "nativeSrc": "6952:51:19", + "nodeType": "YulVariableDeclaration", + "src": "6952:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6999:3:19", + "nodeType": "YulIdentifier", + "src": "6999:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6966:32:19", + "nodeType": "YulIdentifier", + "src": "6966:32:19" + }, + "nativeSrc": "6966:37:19", + "nodeType": "YulFunctionCall", + "src": "6966:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6956:6:19", + "nodeType": "YulTypedName", + "src": "6956:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7088:22:19", + "nodeType": "YulBlock", + "src": "7088:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7090:16:19", + "nodeType": "YulIdentifier", + "src": "7090:16:19" + }, + "nativeSrc": "7090:18:19", + "nodeType": "YulFunctionCall", + "src": "7090:18:19" + }, + "nativeSrc": "7090:18:19", + "nodeType": "YulExpressionStatement", + "src": "7090:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7060:6:19", + "nodeType": "YulIdentifier", + "src": "7060:6:19" + }, + { + "kind": "number", + "nativeSrc": "7068:18:19", + "nodeType": "YulLiteral", + "src": "7068:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7057:2:19", + "nodeType": "YulIdentifier", + "src": "7057:2:19" + }, + "nativeSrc": "7057:30:19", + "nodeType": "YulFunctionCall", + "src": "7057:30:19" + }, + "nativeSrc": "7054:56:19", + "nodeType": "YulIf", + "src": "7054:56:19" + }, + { + "nativeSrc": "7120:52:19", + "nodeType": "YulVariableDeclaration", + "src": "7120:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7166:4:19", + "nodeType": "YulIdentifier", + "src": "7166:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "7160:5:19", + "nodeType": "YulIdentifier", + "src": "7160:5:19" + }, + "nativeSrc": "7160:11:19", + "nodeType": "YulFunctionCall", + "src": "7160:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7134:25:19", + "nodeType": "YulIdentifier", + "src": "7134:25:19" + }, + "nativeSrc": "7134:38:19", + "nodeType": "YulFunctionCall", + "src": "7134:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7124:6:19", + "nodeType": "YulTypedName", + "src": "7124:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7265:4:19", + "nodeType": "YulIdentifier", + "src": "7265:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "7271:6:19", + "nodeType": "YulIdentifier", + "src": "7271:6:19" + }, + { + "name": "newLen", + "nativeSrc": "7279:6:19", + "nodeType": "YulIdentifier", + "src": "7279:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7219:45:19", + "nodeType": "YulIdentifier", + "src": "7219:45:19" + }, + "nativeSrc": "7219:67:19", + "nodeType": "YulFunctionCall", + "src": "7219:67:19" + }, + "nativeSrc": "7219:67:19", + "nodeType": "YulExpressionStatement", + "src": "7219:67:19" + }, + { + "nativeSrc": "7296:18:19", + "nodeType": "YulVariableDeclaration", + "src": "7296:18:19", + "value": { + "kind": "number", + "nativeSrc": "7313:1:19", + "nodeType": "YulLiteral", + "src": "7313:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7300:9:19", + "nodeType": "YulTypedName", + "src": "7300:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7324:17:19", + "nodeType": "YulAssignment", + "src": "7324:17:19", + "value": { + "kind": "number", + "nativeSrc": "7337:4:19", + "nodeType": "YulLiteral", + "src": "7337:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7324:9:19", + "nodeType": "YulIdentifier", + "src": "7324:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7388:611:19", + "nodeType": "YulBlock", + "src": "7388:611:19", + "statements": [ + { + "nativeSrc": "7402:37:19", + "nodeType": "YulVariableDeclaration", + "src": "7402:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7421:6:19", + "nodeType": "YulIdentifier", + "src": "7421:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7433:4:19", + "nodeType": "YulLiteral", + "src": "7433:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7429:3:19", + "nodeType": "YulIdentifier", + "src": "7429:3:19" + }, + "nativeSrc": "7429:9:19", + "nodeType": "YulFunctionCall", + "src": "7429:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7417:3:19", + "nodeType": "YulIdentifier", + "src": "7417:3:19" + }, + "nativeSrc": "7417:22:19", + "nodeType": "YulFunctionCall", + "src": "7417:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7406:7:19", + "nodeType": "YulTypedName", + "src": "7406:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7453:51:19", + "nodeType": "YulVariableDeclaration", + "src": "7453:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7499:4:19", + "nodeType": "YulIdentifier", + "src": "7499:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7467:31:19", + "nodeType": "YulIdentifier", + "src": "7467:31:19" + }, + "nativeSrc": "7467:37:19", + "nodeType": "YulFunctionCall", + "src": "7467:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7457:6:19", + "nodeType": "YulTypedName", + "src": "7457:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7517:10:19", + "nodeType": "YulVariableDeclaration", + "src": "7517:10:19", + "value": { + "kind": "number", + "nativeSrc": "7526:1:19", + "nodeType": "YulLiteral", + "src": "7526:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7521:1:19", + "nodeType": "YulTypedName", + "src": "7521:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7585:163:19", + "nodeType": "YulBlock", + "src": "7585:163:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7610:6:19", + "nodeType": "YulIdentifier", + "src": "7610:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7628:3:19", + "nodeType": "YulIdentifier", + "src": "7628:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "7633:9:19", + "nodeType": "YulIdentifier", + "src": "7633:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7624:3:19", + "nodeType": "YulIdentifier", + "src": "7624:3:19" + }, + "nativeSrc": "7624:19:19", + "nodeType": "YulFunctionCall", + "src": "7624:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7618:5:19", + "nodeType": "YulIdentifier", + "src": "7618:5:19" + }, + "nativeSrc": "7618:26:19", + "nodeType": "YulFunctionCall", + "src": "7618:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7603:6:19", + "nodeType": "YulIdentifier", + "src": "7603:6:19" + }, + "nativeSrc": "7603:42:19", + "nodeType": "YulFunctionCall", + "src": "7603:42:19" + }, + "nativeSrc": "7603:42:19", + "nodeType": "YulExpressionStatement", + "src": "7603:42:19" + }, + { + "nativeSrc": "7662:24:19", + "nodeType": "YulAssignment", + "src": "7662:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7676:6:19", + "nodeType": "YulIdentifier", + "src": "7676:6:19" + }, + { + "kind": "number", + "nativeSrc": "7684:1:19", + "nodeType": "YulLiteral", + "src": "7684:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7672:3:19", + "nodeType": "YulIdentifier", + "src": "7672:3:19" + }, + "nativeSrc": "7672:14:19", + "nodeType": "YulFunctionCall", + "src": "7672:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7662:6:19", + "nodeType": "YulIdentifier", + "src": "7662:6:19" + } + ] + }, + { + "nativeSrc": "7703:31:19", + "nodeType": "YulAssignment", + "src": "7703:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7720:9:19", + "nodeType": "YulIdentifier", + "src": "7720:9:19" + }, + { + "kind": "number", + "nativeSrc": "7731:2:19", + "nodeType": "YulLiteral", + "src": "7731:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7716:3:19", + "nodeType": "YulIdentifier", + "src": "7716:3:19" + }, + "nativeSrc": "7716:18:19", + "nodeType": "YulFunctionCall", + "src": "7716:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7703:9:19", + "nodeType": "YulIdentifier", + "src": "7703:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7551:1:19", + "nodeType": "YulIdentifier", + "src": "7551:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "7554:7:19", + "nodeType": "YulIdentifier", + "src": "7554:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7548:2:19", + "nodeType": "YulIdentifier", + "src": "7548:2:19" + }, + "nativeSrc": "7548:14:19", + "nodeType": "YulFunctionCall", + "src": "7548:14:19" + }, + "nativeSrc": "7540:208:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7563:21:19", + "nodeType": "YulBlock", + "src": "7563:21:19", + "statements": [ + { + "nativeSrc": "7565:17:19", + "nodeType": "YulAssignment", + "src": "7565:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7574:1:19", + "nodeType": "YulIdentifier", + "src": "7574:1:19" + }, + { + "kind": "number", + "nativeSrc": "7577:4:19", + "nodeType": "YulLiteral", + "src": "7577:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7570:3:19", + "nodeType": "YulIdentifier", + "src": "7570:3:19" + }, + "nativeSrc": "7570:12:19", + "nodeType": "YulFunctionCall", + "src": "7570:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7565:1:19", + "nodeType": "YulIdentifier", + "src": "7565:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7544:3:19", + "nodeType": "YulBlock", + "src": "7544:3:19", + "statements": [] + }, + "src": "7540:208:19" + }, + { + "body": { + "nativeSrc": "7784:156:19", + "nodeType": "YulBlock", + "src": "7784:156:19", + "statements": [ + { + "nativeSrc": "7802:43:19", + "nodeType": "YulVariableDeclaration", + "src": "7802:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7829:3:19", + "nodeType": "YulIdentifier", + "src": "7829:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "7834:9:19", + "nodeType": "YulIdentifier", + "src": "7834:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7825:3:19", + "nodeType": "YulIdentifier", + "src": "7825:3:19" + }, + "nativeSrc": "7825:19:19", + "nodeType": "YulFunctionCall", + "src": "7825:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7819:5:19", + "nodeType": "YulIdentifier", + "src": "7819:5:19" + }, + "nativeSrc": "7819:26:19", + "nodeType": "YulFunctionCall", + "src": "7819:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7806:9:19", + "nodeType": "YulTypedName", + "src": "7806:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7869:6:19", + "nodeType": "YulIdentifier", + "src": "7869:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7896:9:19", + "nodeType": "YulIdentifier", + "src": "7896:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7911:6:19", + "nodeType": "YulIdentifier", + "src": "7911:6:19" + }, + { + "kind": "number", + "nativeSrc": "7919:4:19", + "nodeType": "YulLiteral", + "src": "7919:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7907:3:19", + "nodeType": "YulIdentifier", + "src": "7907:3:19" + }, + "nativeSrc": "7907:17:19", + "nodeType": "YulFunctionCall", + "src": "7907:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7877:18:19", + "nodeType": "YulIdentifier", + "src": "7877:18:19" + }, + "nativeSrc": "7877:48:19", + "nodeType": "YulFunctionCall", + "src": "7877:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7862:6:19", + "nodeType": "YulIdentifier", + "src": "7862:6:19" + }, + "nativeSrc": "7862:64:19", + "nodeType": "YulFunctionCall", + "src": "7862:64:19" + }, + "nativeSrc": "7862:64:19", + "nodeType": "YulExpressionStatement", + "src": "7862:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7767:7:19", + "nodeType": "YulIdentifier", + "src": "7767:7:19" + }, + { + "name": "newLen", + "nativeSrc": "7776:6:19", + "nodeType": "YulIdentifier", + "src": "7776:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7764:2:19", + "nodeType": "YulIdentifier", + "src": "7764:2:19" + }, + "nativeSrc": "7764:19:19", + "nodeType": "YulFunctionCall", + "src": "7764:19:19" + }, + "nativeSrc": "7761:179:19", + "nodeType": "YulIf", + "src": "7761:179:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7960:4:19", + "nodeType": "YulIdentifier", + "src": "7960:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7974:6:19", + "nodeType": "YulIdentifier", + "src": "7974:6:19" + }, + { + "kind": "number", + "nativeSrc": "7982:1:19", + "nodeType": "YulLiteral", + "src": "7982:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7970:3:19", + "nodeType": "YulIdentifier", + "src": "7970:3:19" + }, + "nativeSrc": "7970:14:19", + "nodeType": "YulFunctionCall", + "src": "7970:14:19" + }, + { + "kind": "number", + "nativeSrc": "7986:1:19", + "nodeType": "YulLiteral", + "src": "7986:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7966:3:19", + "nodeType": "YulIdentifier", + "src": "7966:3:19" + }, + "nativeSrc": "7966:22:19", + "nodeType": "YulFunctionCall", + "src": "7966:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7953:6:19", + "nodeType": "YulIdentifier", + "src": "7953:6:19" + }, + "nativeSrc": "7953:36:19", + "nodeType": "YulFunctionCall", + "src": "7953:36:19" + }, + "nativeSrc": "7953:36:19", + "nodeType": "YulExpressionStatement", + "src": "7953:36:19" + } + ] + }, + "nativeSrc": "7381:618:19", + "nodeType": "YulCase", + "src": "7381:618:19", + "value": { + "kind": "number", + "nativeSrc": "7386:1:19", + "nodeType": "YulLiteral", + "src": "7386:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "8016:222:19", + "nodeType": "YulBlock", + "src": "8016:222:19", + "statements": [ + { + "nativeSrc": "8030:14:19", + "nodeType": "YulVariableDeclaration", + "src": "8030:14:19", + "value": { + "kind": "number", + "nativeSrc": "8043:1:19", + "nodeType": "YulLiteral", + "src": "8043:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8034:5:19", + "nodeType": "YulTypedName", + "src": "8034:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8067:67:19", + "nodeType": "YulBlock", + "src": "8067:67:19", + "statements": [ + { + "nativeSrc": "8085:35:19", + "nodeType": "YulAssignment", + "src": "8085:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8104:3:19", + "nodeType": "YulIdentifier", + "src": "8104:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "8109:9:19", + "nodeType": "YulIdentifier", + "src": "8109:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8100:3:19", + "nodeType": "YulIdentifier", + "src": "8100:3:19" + }, + "nativeSrc": "8100:19:19", + "nodeType": "YulFunctionCall", + "src": "8100:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8094:5:19", + "nodeType": "YulIdentifier", + "src": "8094:5:19" + }, + "nativeSrc": "8094:26:19", + "nodeType": "YulFunctionCall", + "src": "8094:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8085:5:19", + "nodeType": "YulIdentifier", + "src": "8085:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8060:6:19", + "nodeType": "YulIdentifier", + "src": "8060:6:19" + }, + "nativeSrc": "8057:77:19", + "nodeType": "YulIf", + "src": "8057:77:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8154:4:19", + "nodeType": "YulIdentifier", + "src": "8154:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8213:5:19", + "nodeType": "YulIdentifier", + "src": "8213:5:19" + }, + { + "name": "newLen", + "nativeSrc": "8220:6:19", + "nodeType": "YulIdentifier", + "src": "8220:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8160:52:19", + "nodeType": "YulIdentifier", + "src": "8160:52:19" + }, + "nativeSrc": "8160:67:19", + "nodeType": "YulFunctionCall", + "src": "8160:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8147:6:19", + "nodeType": "YulIdentifier", + "src": "8147:6:19" + }, + "nativeSrc": "8147:81:19", + "nodeType": "YulFunctionCall", + "src": "8147:81:19" + }, + "nativeSrc": "8147:81:19", + "nodeType": "YulExpressionStatement", + "src": "8147:81:19" + } + ] + }, + "nativeSrc": "8008:230:19", + "nodeType": "YulCase", + "src": "8008:230:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7361:6:19", + "nodeType": "YulIdentifier", + "src": "7361:6:19" + }, + { + "kind": "number", + "nativeSrc": "7369:2:19", + "nodeType": "YulLiteral", + "src": "7369:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7358:2:19", + "nodeType": "YulIdentifier", + "src": "7358:2:19" + }, + "nativeSrc": "7358:14:19", + "nodeType": "YulFunctionCall", + "src": "7358:14:19" + }, + "nativeSrc": "7351:887:19", + "nodeType": "YulSwitch", + "src": "7351:887:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6849:1395:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "6930:4:19", + "nodeType": "YulTypedName", + "src": "6930:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "6936:3:19", + "nodeType": "YulTypedName", + "src": "6936:3:19", + "type": "" + } + ], + "src": "6849:1395:19" + }, + { + "body": { + "nativeSrc": "8295:81:19", + "nodeType": "YulBlock", + "src": "8295:81:19", + "statements": [ + { + "nativeSrc": "8305:65:19", + "nodeType": "YulAssignment", + "src": "8305:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8320:5:19", + "nodeType": "YulIdentifier", + "src": "8320:5:19" + }, + { + "kind": "number", + "nativeSrc": "8327:42:19", + "nodeType": "YulLiteral", + "src": "8327:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8316:3:19", + "nodeType": "YulIdentifier", + "src": "8316:3:19" + }, + "nativeSrc": "8316:54:19", + "nodeType": "YulFunctionCall", + "src": "8316:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8305:7:19", + "nodeType": "YulIdentifier", + "src": "8305:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "8250:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8277:5:19", + "nodeType": "YulTypedName", + "src": "8277:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8287:7:19", + "nodeType": "YulTypedName", + "src": "8287:7:19", + "type": "" + } + ], + "src": "8250:126:19" + }, + { + "body": { + "nativeSrc": "8427:51:19", + "nodeType": "YulBlock", + "src": "8427:51:19", + "statements": [ + { + "nativeSrc": "8437:35:19", + "nodeType": "YulAssignment", + "src": "8437:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8466:5:19", + "nodeType": "YulIdentifier", + "src": "8466:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "8448:17:19", + "nodeType": "YulIdentifier", + "src": "8448:17:19" + }, + "nativeSrc": "8448:24:19", + "nodeType": "YulFunctionCall", + "src": "8448:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8437:7:19", + "nodeType": "YulIdentifier", + "src": "8437:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "8382:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8409:5:19", + "nodeType": "YulTypedName", + "src": "8409:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8419:7:19", + "nodeType": "YulTypedName", + "src": "8419:7:19", + "type": "" + } + ], + "src": "8382:96:19" + }, + { + "body": { + "nativeSrc": "8549:53:19", + "nodeType": "YulBlock", + "src": "8549:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8566:3:19", + "nodeType": "YulIdentifier", + "src": "8566:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8589:5:19", + "nodeType": "YulIdentifier", + "src": "8589:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "8571:17:19", + "nodeType": "YulIdentifier", + "src": "8571:17:19" + }, + "nativeSrc": "8571:24:19", + "nodeType": "YulFunctionCall", + "src": "8571:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8559:6:19", + "nodeType": "YulIdentifier", + "src": "8559:6:19" + }, + "nativeSrc": "8559:37:19", + "nodeType": "YulFunctionCall", + "src": "8559:37:19" + }, + "nativeSrc": "8559:37:19", + "nodeType": "YulExpressionStatement", + "src": "8559:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8484:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8537:5:19", + "nodeType": "YulTypedName", + "src": "8537:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8544:3:19", + "nodeType": "YulTypedName", + "src": "8544:3:19", + "type": "" + } + ], + "src": "8484:118:19" + }, + { + "body": { + "nativeSrc": "8706:124:19", + "nodeType": "YulBlock", + "src": "8706:124:19", + "statements": [ + { + "nativeSrc": "8716:26:19", + "nodeType": "YulAssignment", + "src": "8716:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8728:9:19", + "nodeType": "YulIdentifier", + "src": "8728:9:19" + }, + { + "kind": "number", + "nativeSrc": "8739:2:19", + "nodeType": "YulLiteral", + "src": "8739:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8724:3:19", + "nodeType": "YulIdentifier", + "src": "8724:3:19" + }, + "nativeSrc": "8724:18:19", + "nodeType": "YulFunctionCall", + "src": "8724:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8716:4:19", + "nodeType": "YulIdentifier", + "src": "8716:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8796:6:19", + "nodeType": "YulIdentifier", + "src": "8796:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8809:9:19", + "nodeType": "YulIdentifier", + "src": "8809:9:19" + }, + { + "kind": "number", + "nativeSrc": "8820:1:19", + "nodeType": "YulLiteral", + "src": "8820:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8805:3:19", + "nodeType": "YulIdentifier", + "src": "8805:3:19" + }, + "nativeSrc": "8805:17:19", + "nodeType": "YulFunctionCall", + "src": "8805:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8752:43:19", + "nodeType": "YulIdentifier", + "src": "8752:43:19" + }, + "nativeSrc": "8752:71:19", + "nodeType": "YulFunctionCall", + "src": "8752:71:19" + }, + "nativeSrc": "8752:71:19", + "nodeType": "YulExpressionStatement", + "src": "8752:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "8608:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8678:9:19", + "nodeType": "YulTypedName", + "src": "8678:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8690:6:19", + "nodeType": "YulTypedName", + "src": "8690:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8701:4:19", + "nodeType": "YulTypedName", + "src": "8701:4:19", + "type": "" + } + ], + "src": "8608:222:19" + } + ] + }, + "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_with_cleanup(src, dst, length) {\n\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 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_with_cleanup(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 abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { 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 function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\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 function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_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}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060405161351e38038061351e8339818101604052810190610032919061039c565b336040518060400160405280600781526020017f436f72654e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f434f52450000000000000000000000000000000000000000000000000000000081525081600090816100ae9190610606565b5080600190816100be9190610606565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101335760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161012a9190610719565b60405180910390fd5b6101428161016160201b60201c565b5080600d90816101529190610606565b506000600c8190555050610734565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61028e82610245565b810181811067ffffffffffffffff821117156102ad576102ac610256565b5b80604052505050565b60006102c0610227565b90506102cc8282610285565b919050565b600067ffffffffffffffff8211156102ec576102eb610256565b5b6102f582610245565b9050602081019050919050565b60005b83811015610320578082015181840152602081019050610305565b60008484015250505050565b600061033f61033a846102d1565b6102b6565b90508281526020810184848401111561035b5761035a610240565b5b610366848285610302565b509392505050565b600082601f8301126103835761038261023b565b5b815161039384826020860161032c565b91505092915050565b6000602082840312156103b2576103b1610231565b5b600082015167ffffffffffffffff8111156103d0576103cf610236565b5b6103dc8482850161036e565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061043757607f821691505b60208210810361044a576104496103f0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610475565b6104bc8683610475565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006105036104fe6104f9846104d4565b6104de565b6104d4565b9050919050565b6000819050919050565b61051d836104e8565b6105316105298261050a565b848454610482565b825550505050565b600090565b610546610539565b610551818484610514565b505050565b5b818110156105755761056a60008261053e565b600181019050610557565b5050565b601f8211156105ba5761058b81610450565b61059484610465565b810160208510156105a3578190505b6105b76105af85610465565b830182610556565b50505b505050565b600082821c905092915050565b60006105dd600019846008026105bf565b1980831691505092915050565b60006105f683836105cc565b9150826002028217905092915050565b61060f826103e5565b67ffffffffffffffff81111561062857610627610256565b5b610632825461041f565b61063d828285610579565b600060209050601f831160018114610670576000841561065e578287015190505b61066885826105ea565b8655506106d0565b601f19841661067e86610450565b60005b828110156106a657848901518255600182019150602085019450602081019050610681565b868310156106c357848901516106bf601f8916826105cc565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610703826106d8565b9050919050565b610713816106f8565b82525050565b600060208201905061072e600083018461070a565b92915050565b612ddb806107436000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806356189236116100b857806395d89b411161007c57806395d89b4114610375578063a22cb46514610393578063b88d4fde146103af578063c87b56dd146103cb578063e985e9c5146103fb578063f2fde38b1461042b57610142565b806356189236146102cf5780636352211e146102ed57806370a082311461031d578063715018a61461034d5780638da5cb5b1461035757610142565b806323b872dd1161010a57806323b872dd146101ff5780632f745c591461021b57806340d097c31461024b57806342842e0e146102675780634f6ccce71461028357806355f804b3146102b357610142565b806301ffc9a71461014757806306fdde0314610177578063081812fc14610195578063095ea7b3146101c557806318160ddd146101e1575b600080fd5b610161600480360381019061015c919061213b565b610447565b60405161016e9190612183565b60405180910390f35b61017f610459565b60405161018c919061222e565b60405180910390f35b6101af60048036038101906101aa9190612286565b6104eb565b6040516101bc91906122f4565b60405180910390f35b6101df60048036038101906101da919061233b565b610507565b005b6101e961051d565b6040516101f6919061238a565b60405180910390f35b610219600480360381019061021491906123a5565b61052a565b005b6102356004803603810190610230919061233b565b61062c565b604051610242919061238a565b60405180910390f35b610265600480360381019061026091906123f8565b6106d5565b005b610281600480360381019061027c91906123a5565b610737565b005b61029d60048036038101906102989190612286565b610757565b6040516102aa919061238a565b60405180910390f35b6102cd60048036038101906102c8919061255a565b6107cd565b005b6102d76107e8565b6040516102e4919061238a565b60405180910390f35b61030760048036038101906103029190612286565b6107f2565b60405161031491906122f4565b60405180910390f35b610337600480360381019061033291906123f8565b610804565b604051610344919061238a565b60405180910390f35b6103556108be565b005b61035f6108d2565b60405161036c91906122f4565b60405180910390f35b61037d6108fc565b60405161038a919061222e565b60405180910390f35b6103ad60048036038101906103a891906125cf565b61098e565b005b6103c960048036038101906103c491906126b0565b6109a4565b005b6103e560048036038101906103e09190612286565b6109c1565b6040516103f2919061222e565b60405180910390f35b61041560048036038101906104109190612733565b610a20565b6040516104229190612183565b60405180910390f35b610445600480360381019061044091906123f8565b610ab4565b005b600061045282610b3a565b9050919050565b606060008054610468906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610494906127a2565b80156104e15780601f106104b6576101008083540402835291602001916104e1565b820191906000526020600020905b8154815290600101906020018083116104c457829003601f168201915b5050505050905090565b60006104f682610b9b565b5061050082610c23565b9050919050565b6105198282610514610c60565b610c68565b5050565b6000600880549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361059c5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161059391906122f4565b60405180910390fd5b60006105b083836105ab610c60565b610c7a565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610626578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161061d939291906127d3565b60405180910390fd5b50505050565b600061063783610804565b821061067c5782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161067392919061280a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6106dd610c90565b6000600c60008154809291906106f290612862565b9190505590506107028282610d17565b6107338161070f83610d35565b60405160200161071f9190612932565b604051602081830303815290604052610e03565b5050565b610752838383604051806020016040528060008152506109a4565b505050565b600061076161051d565b82106107a7576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161079e92919061280a565b60405180910390fd5b600882815481106107bb576107ba612954565b5b90600052602060002001549050919050565b6107d5610c90565b80600d90816107e49190612b2f565b5050565b6000600c54905090565b60006107fd82610b9b565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108775760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161086e91906122f4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108c6610c90565b6108d06000610e5f565b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461090b906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610937906127a2565b80156109845780601f1061095957610100808354040283529160200191610984565b820191906000526020600020905b81548152906001019060200180831161096757829003601f168201915b5050505050905090565b6109a0610999610c60565b8383610f25565b5050565b6109af84848461052a565b6109bb84848484611094565b50505050565b606060006109cd61124b565b905060008151116109ed5760405180602001604052806000815250610a18565b806109f784610d35565b604051602001610a08929190612c01565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610abc610c90565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2e5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b2591906122f4565b60405180910390fd5b610b3781610e5f565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b945750610b93826112dd565b5b9050919050565b600080610ba783611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c1a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610c11919061238a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b610c758383836001611394565b505050565b6000610c87848484611559565b90509392505050565b610c98610c60565b73ffffffffffffffffffffffffffffffffffffffff16610cb66108d2565b73ffffffffffffffffffffffffffffffffffffffff1614610d1557610cd9610c60565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d0c91906122f4565b60405180910390fd5b565b610d31828260405180602001604052806000815250611676565b5050565b606060006001610d4484611692565b01905060008167ffffffffffffffff811115610d6357610d6261242f565b5b6040519080825280601f01601f191660200182016040528015610d955781602001600182028036833780820191505090505b509050600082602001820190505b600115610df8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610dec57610deb612c30565b5b04945060008503610da3575b819350505050919050565b80600a60008481526020019081526020016000209081610e239190612b2f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051610e53919061238a565b60405180910390a15050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9657816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610f8d91906122f4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110879190612183565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611245578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026110d8610c60565b8685856040518563ffffffff1660e01b81526004016110fa9493929190612cb4565b6020604051808303816000875af192505050801561113657506040513d601f19601f820116820180604052508101906111339190612d15565b60015b6111ba573d8060008114611166576040519150601f19603f3d011682016040523d82523d6000602084013e61116b565b606091505b5060008151036111b257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016111a991906122f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161123a91906122f4565b60405180910390fd5b505b50505050565b6060600d805461125a906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054611286906127a2565b80156112d35780601f106112a8576101008083540402835291602001916112d3565b820191906000526020600020905b8154815290600101906020018083116112b657829003601f168201915b5050505050905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611350575061134f826117e5565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806113cd5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115015760006113dd84610b9b565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561144857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561145b57506114598184610a20565b155b1561149d57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161149491906122f4565b60405180910390fd5b81156114ff57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806115678585856118c7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ab576115a684611ae1565b6115ea565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115e9576115e88185611b2a565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361162c5761162784611c8b565b61166b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461166a576116698585611d5c565b5b5b809150509392505050565b6116808383611de7565b61168d6000848484611094565b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106116f0577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116e6576116e5612c30565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061172d576d04ee2d6d415b85acef8100000000838161172357611722612c30565b5b0492506020810190505b662386f26fc10000831061175c57662386f26fc10000838161175257611751612c30565b5b0492506010810190505b6305f5e1008310611785576305f5e100838161177b5761177a612c30565b5b0492506008810190505b61271083106117aa5761271083816117a05761179f612c30565b5b0492506004810190505b606483106117cd57606483816117c3576117c2612c30565b5b0492506002810190505b600a83106117dc576001810190505b80915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118b057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118c057506118bf82611ee0565b5b9050919050565b6000806118d384611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461191557611914818486611f4a565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119a657611957600085600080611394565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611a29576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000611b3583610804565b9050600060076000848152602001908152602001600020549050818114611c1a576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050611c9f9190612d42565b9050600060096000848152602001908152602001600020549050600060088381548110611ccf57611cce612954565b5b906000526020600020015490508060088381548110611cf157611cf0612954565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480611d4057611d3f612d76565b5b6001900381819060005260206000200160009055905550505050565b60006001611d6984610804565b611d739190612d42565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e595760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e5091906122f4565b60405180910390fd5b6000611e6783836000610c7a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611edb5760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611ed291906122f4565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611f5583838361200e565b61200957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fca57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611fc1919061238a565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161200092919061280a565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208757506120868484610a20565b5b806120c557508273ffffffffffffffffffffffffffffffffffffffff166120ad83610c23565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612118816120e3565b811461212357600080fd5b50565b6000813590506121358161210f565b92915050565b600060208284031215612151576121506120d9565b5b600061215f84828501612126565b91505092915050565b60008115159050919050565b61217d81612168565b82525050565b60006020820190506121986000830184612174565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121d85780820151818401526020810190506121bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006122008261219e565b61220a81856121a9565b935061221a8185602086016121ba565b612223816121e4565b840191505092915050565b6000602082019050818103600083015261224881846121f5565b905092915050565b6000819050919050565b61226381612250565b811461226e57600080fd5b50565b6000813590506122808161225a565b92915050565b60006020828403121561229c5761229b6120d9565b5b60006122aa84828501612271565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122de826122b3565b9050919050565b6122ee816122d3565b82525050565b600060208201905061230960008301846122e5565b92915050565b612318816122d3565b811461232357600080fd5b50565b6000813590506123358161230f565b92915050565b60008060408385031215612352576123516120d9565b5b600061236085828601612326565b925050602061237185828601612271565b9150509250929050565b61238481612250565b82525050565b600060208201905061239f600083018461237b565b92915050565b6000806000606084860312156123be576123bd6120d9565b5b60006123cc86828701612326565b93505060206123dd86828701612326565b92505060406123ee86828701612271565b9150509250925092565b60006020828403121561240e5761240d6120d9565b5b600061241c84828501612326565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612467826121e4565b810181811067ffffffffffffffff821117156124865761248561242f565b5b80604052505050565b60006124996120cf565b90506124a5828261245e565b919050565b600067ffffffffffffffff8211156124c5576124c461242f565b5b6124ce826121e4565b9050602081019050919050565b82818337600083830152505050565b60006124fd6124f8846124aa565b61248f565b9050828152602081018484840111156125195761251861242a565b5b6125248482856124db565b509392505050565b600082601f83011261254157612540612425565b5b81356125518482602086016124ea565b91505092915050565b6000602082840312156125705761256f6120d9565b5b600082013567ffffffffffffffff81111561258e5761258d6120de565b5b61259a8482850161252c565b91505092915050565b6125ac81612168565b81146125b757600080fd5b50565b6000813590506125c9816125a3565b92915050565b600080604083850312156125e6576125e56120d9565b5b60006125f485828601612326565b9250506020612605858286016125ba565b9150509250929050565b600067ffffffffffffffff82111561262a5761262961242f565b5b612633826121e4565b9050602081019050919050565b600061265361264e8461260f565b61248f565b90508281526020810184848401111561266f5761266e61242a565b5b61267a8482856124db565b509392505050565b600082601f83011261269757612696612425565b5b81356126a7848260208601612640565b91505092915050565b600080600080608085870312156126ca576126c96120d9565b5b60006126d887828801612326565b94505060206126e987828801612326565b93505060406126fa87828801612271565b925050606085013567ffffffffffffffff81111561271b5761271a6120de565b5b61272787828801612682565b91505092959194509250565b6000806040838503121561274a576127496120d9565b5b600061275885828601612326565b925050602061276985828601612326565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127ba57607f821691505b6020821081036127cd576127cc612773565b5b50919050565b60006060820190506127e860008301866122e5565b6127f5602083018561237b565b61280260408301846122e5565b949350505050565b600060408201905061281f60008301856122e5565b61282c602083018461237b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061286d82612250565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289f5761289e612833565b5b600182019050919050565b600081905092915050565b60006128c08261219e565b6128ca81856128aa565b93506128da8185602086016121ba565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061291c6005836128aa565b9150612927826128e6565b600582019050919050565b600061293e82846128b5565b91506129498261290f565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026129e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826129a8565b6129ef86836129a8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612a2c612a27612a2284612250565b612a07565b612250565b9050919050565b6000819050919050565b612a4683612a11565b612a5a612a5282612a33565b8484546129b5565b825550505050565b600090565b612a6f612a62565b612a7a818484612a3d565b505050565b5b81811015612a9e57612a93600082612a67565b600181019050612a80565b5050565b601f821115612ae357612ab481612983565b612abd84612998565b81016020851015612acc578190505b612ae0612ad885612998565b830182612a7f565b50505b505050565b600082821c905092915050565b6000612b0660001984600802612ae8565b1980831691505092915050565b6000612b1f8383612af5565b9150826002028217905092915050565b612b388261219e565b67ffffffffffffffff811115612b5157612b5061242f565b5b612b5b82546127a2565b612b66828285612aa2565b600060209050601f831160018114612b995760008415612b87578287015190505b612b918582612b13565b865550612bf9565b601f198416612ba786612983565b60005b82811015612bcf57848901518255600182019150602085019450602081019050612baa565b86831015612bec5784890151612be8601f891682612af5565b8355505b6001600288020188555050505b505050505050565b6000612c0d82856128b5565b9150612c1982846128b5565b9150612c248261290f565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612c8682612c5f565b612c908185612c6a565b9350612ca08185602086016121ba565b612ca9816121e4565b840191505092915050565b6000608082019050612cc960008301876122e5565b612cd660208301866122e5565b612ce3604083018561237b565b8181036060830152612cf58184612c7b565b905095945050505050565b600081519050612d0f8161210f565b92915050565b600060208284031215612d2b57612d2a6120d9565b5b6000612d3984828501612d00565b91505092915050565b6000612d4d82612250565b9150612d5883612250565b9250828203905081811115612d7057612d6f612833565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220e742470774f454e660aa990254ed1f1d8f5271ffa5f567e4e79c7881bf12ea2064736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x351E CODESIZE SUB DUP1 PUSH2 0x351E DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x39C JUMP JUMPDEST CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436F72654E465400000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x434F524500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH2 0xAE SWAP2 SWAP1 PUSH2 0x606 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x606 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x133 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x161 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0xD SWAP1 DUP2 PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x606 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE POP POP PUSH2 0x734 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0xB 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 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 PUSH2 0x28E DUP3 PUSH2 0x245 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2AD JUMPI PUSH2 0x2AC PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0 PUSH2 0x227 JUMP JUMPDEST SWAP1 POP PUSH2 0x2CC DUP3 DUP3 PUSH2 0x285 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2EC JUMPI PUSH2 0x2EB PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH2 0x2F5 DUP3 PUSH2 0x245 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x320 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x305 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33F PUSH2 0x33A DUP5 PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x35B JUMPI PUSH2 0x35A PUSH2 0x240 JUMP JUMPDEST JUMPDEST PUSH2 0x366 DUP5 DUP3 DUP6 PUSH2 0x302 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x383 JUMPI PUSH2 0x382 PUSH2 0x23B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x393 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x32C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B2 JUMPI PUSH2 0x3B1 PUSH2 0x231 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3D0 JUMPI PUSH2 0x3CF PUSH2 0x236 JUMP JUMPDEST JUMPDEST PUSH2 0x3DC DUP5 DUP3 DUP6 ADD PUSH2 0x36E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD 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 0x437 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x44A JUMPI PUSH2 0x449 PUSH2 0x3F0 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 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 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x4B2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x475 JUMP JUMPDEST PUSH2 0x4BC DUP7 DUP4 PUSH2 0x475 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x503 PUSH2 0x4FE PUSH2 0x4F9 DUP5 PUSH2 0x4D4 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST PUSH2 0x4D4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51D DUP4 PUSH2 0x4E8 JUMP JUMPDEST PUSH2 0x531 PUSH2 0x529 DUP3 PUSH2 0x50A JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x482 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x546 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x551 DUP2 DUP5 DUP5 PUSH2 0x514 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x575 JUMPI PUSH2 0x56A PUSH1 0x0 DUP3 PUSH2 0x53E JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x557 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5BA JUMPI PUSH2 0x58B DUP2 PUSH2 0x450 JUMP JUMPDEST PUSH2 0x594 DUP5 PUSH2 0x465 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5A3 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x5B7 PUSH2 0x5AF DUP6 PUSH2 0x465 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x556 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DD PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5BF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F6 DUP4 DUP4 PUSH2 0x5CC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x60F DUP3 PUSH2 0x3E5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x628 JUMPI PUSH2 0x627 PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH2 0x632 DUP3 SLOAD PUSH2 0x41F JUMP JUMPDEST PUSH2 0x63D DUP3 DUP3 DUP6 PUSH2 0x579 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x670 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x65E JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x668 DUP6 DUP3 PUSH2 0x5EA JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x67E DUP7 PUSH2 0x450 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x6A6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x681 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x6C3 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x6BF PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5CC JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x703 DUP3 PUSH2 0x6D8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x713 DUP2 PUSH2 0x6F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x72E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x70A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DDB DUP1 PUSH2 0x743 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 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x56189236 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x42B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x56189236 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x357 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x40D097C3 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x2B3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x213B JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x459 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E9 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x235 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x230 SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x242 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0x6D5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x281 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27C SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AA SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x255A JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2D7 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x238A 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 0x2286 JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x22F4 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 0x23F8 JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x355 PUSH2 0x8BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x35F PUSH2 0x8D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37D PUSH2 0x8FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38A SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x25CF JUMP JUMPDEST PUSH2 0x98E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x9A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x415 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x2733 JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x445 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x440 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0xAB4 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH2 0x452 DUP3 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x468 SWAP1 PUSH2 0x27A2 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 0x494 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4E1 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 0x4C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F6 DUP3 PUSH2 0xB9B JUMP JUMPDEST POP PUSH2 0x500 DUP3 PUSH2 0xC23 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x519 DUP3 DUP3 PUSH2 0x514 PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC68 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x59C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5B0 DUP4 DUP4 PUSH2 0x5AB PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x626 JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x637 DUP4 PUSH2 0x804 JUMP JUMPDEST DUP3 LT PUSH2 0x67C JUMPI DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x673 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 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 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6DD PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x6F2 SWAP1 PUSH2 0x2862 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE SWAP1 POP PUSH2 0x702 DUP3 DUP3 PUSH2 0xD17 JUMP JUMPDEST PUSH2 0x733 DUP2 PUSH2 0x70F DUP4 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x2932 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xE03 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x752 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x9A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x761 PUSH2 0x51D JUMP JUMPDEST DUP3 LT PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x79E SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7D5 PUSH2 0xC90 JUMP JUMPDEST DUP1 PUSH1 0xD SWAP1 DUP2 PUSH2 0x7E4 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FD DUP3 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x877 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x86E SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0x8D0 PUSH1 0x0 PUSH2 0xE5F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x90B SWAP1 PUSH2 0x27A2 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 0x937 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x984 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x959 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x984 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 0x967 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9A0 PUSH2 0x999 PUSH2 0xC60 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xF25 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x9AF DUP5 DUP5 DUP5 PUSH2 0x52A JUMP JUMPDEST PUSH2 0x9BB DUP5 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9CD PUSH2 0x124B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x9ED JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xA18 JUMP JUMPDEST DUP1 PUSH2 0x9F7 DUP5 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA08 SWAP3 SWAP2 SWAP1 PUSH2 0x2C01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xABC PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB25 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB37 DUP2 PUSH2 0xE5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB94 JUMPI POP PUSH2 0xB93 DUP3 PUSH2 0x12DD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBA7 DUP4 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC1A JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC11 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC75 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1394 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC87 DUP5 DUP5 DUP5 PUSH2 0x1559 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC98 PUSH2 0xC60 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCB6 PUSH2 0x8D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD15 JUMPI PUSH2 0xCD9 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xD31 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1676 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0xD44 DUP5 PUSH2 0x1692 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD95 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xDF8 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0xDEC JUMPI PUSH2 0xDEB PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0xDA3 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0xE23 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE53 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0xB 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF96 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF8D SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1087 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1245 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x10D8 PUSH2 0xC60 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10FA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1136 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 0x1133 SWAP2 SWAP1 PUSH2 0x2D15 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11BA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1166 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x116B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x11B2 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A9 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1243 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123A SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xD DUP1 SLOAD PUSH2 0x125A SWAP1 PUSH2 0x27A2 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 0x1286 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12D3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12A8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12D3 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 0x12B6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x780E9D6300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1350 JUMPI POP PUSH2 0x134F DUP3 PUSH2 0x17E5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x13CD JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1501 JUMPI PUSH1 0x0 PUSH2 0x13DD DUP5 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1448 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x145B JUMPI POP PUSH2 0x1459 DUP2 DUP5 PUSH2 0xA20 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x149D JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1494 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x14FF JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1567 DUP6 DUP6 DUP6 PUSH2 0x18C7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AB JUMPI PUSH2 0x15A6 DUP5 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x15EA JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15E9 JUMPI PUSH2 0x15E8 DUP2 DUP6 PUSH2 0x1B2A JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x162C JUMPI PUSH2 0x1627 DUP5 PUSH2 0x1C8B JUMP JUMPDEST PUSH2 0x166B JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x166A JUMPI PUSH2 0x1669 DUP6 DUP6 PUSH2 0x1D5C JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1680 DUP4 DUP4 PUSH2 0x1DE7 JUMP JUMPDEST PUSH2 0x168D PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x16F0 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x16E6 JUMPI PUSH2 0x16E5 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x172D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1723 JUMPI PUSH2 0x1722 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x175C JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x1752 JUMPI PUSH2 0x1751 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1785 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x177B JUMPI PUSH2 0x177A PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x17AA JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x17A0 JUMPI PUSH2 0x179F PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x17CD JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x17DC JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x18B0 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x18C0 JUMPI POP PUSH2 0x18BF DUP3 PUSH2 0x1EE0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x18D3 DUP5 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1915 JUMPI PUSH2 0x1914 DUP2 DUP5 DUP7 PUSH2 0x1F4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19A6 JUMPI PUSH2 0x1957 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1394 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A29 JUMPI PUSH1 0x1 PUSH1 0x3 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x8 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B35 DUP4 PUSH2 0x804 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1C1A JUMPI PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH1 0x6 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 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x1C9F SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CCF JUMPI PUSH2 0x1CCE PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CF1 JUMPI PUSH2 0x1CF0 PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x9 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x2D76 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1D69 DUP5 PUSH2 0x804 JUMP JUMPDEST PUSH2 0x1D73 SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1E59 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E50 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E67 DUP4 DUP4 PUSH1 0x0 PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1EDB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ED2 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST 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 PUSH2 0x1F55 DUP4 DUP4 DUP4 PUSH2 0x200E JUMP JUMPDEST PUSH2 0x2009 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1FCA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FC1 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2000 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2087 JUMPI POP PUSH2 0x2086 DUP5 DUP5 PUSH2 0xA20 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x20C5 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x20AD DUP4 PUSH2 0xC23 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2118 DUP2 PUSH2 0x20E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2135 DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2150 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x215F DUP5 DUP3 DUP6 ADD PUSH2 0x2126 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x217D DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2198 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2174 JUMP JUMPDEST 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 0x21D8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x21BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2200 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x220A DUP2 DUP6 PUSH2 0x21A9 JUMP JUMPDEST SWAP4 POP PUSH2 0x221A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2223 DUP2 PUSH2 0x21E4 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 0x2248 DUP2 DUP5 PUSH2 0x21F5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2263 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP2 EQ PUSH2 0x226E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2280 DUP2 PUSH2 0x225A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH2 0x229B PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22AA DUP5 DUP3 DUP6 ADD PUSH2 0x2271 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 PUSH2 0x22DE DUP3 PUSH2 0x22B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EE DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2309 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2318 DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2335 DUP2 PUSH2 0x230F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2352 JUMPI PUSH2 0x2351 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2360 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2371 DUP6 DUP3 DUP7 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2384 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x239F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23CC DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x23DD DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x23EE DUP7 DUP3 DUP8 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240E JUMPI PUSH2 0x240D PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x241C DUP5 DUP3 DUP6 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2467 DUP3 PUSH2 0x21E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2486 JUMPI PUSH2 0x2485 PUSH2 0x242F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2499 PUSH2 0x20CF JUMP JUMPDEST SWAP1 POP PUSH2 0x24A5 DUP3 DUP3 PUSH2 0x245E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24C5 JUMPI PUSH2 0x24C4 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x24CE DUP3 PUSH2 0x21E4 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 0x24FD PUSH2 0x24F8 DUP5 PUSH2 0x24AA JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x2524 DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2541 JUMPI PUSH2 0x2540 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2551 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2570 JUMPI PUSH2 0x256F PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x258E JUMPI PUSH2 0x258D PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x259A DUP5 DUP3 DUP6 ADD PUSH2 0x252C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25AC DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP2 EQ PUSH2 0x25B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25C9 DUP2 PUSH2 0x25A3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E6 JUMPI PUSH2 0x25E5 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25F4 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2605 DUP6 DUP3 DUP7 ADD PUSH2 0x25BA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x262A JUMPI PUSH2 0x2629 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2633 DUP3 PUSH2 0x21E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2653 PUSH2 0x264E DUP5 PUSH2 0x260F JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x266F JUMPI PUSH2 0x266E PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x267A DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2697 JUMPI PUSH2 0x2696 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26A7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2640 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x26CA JUMPI PUSH2 0x26C9 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26D8 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x26E9 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x26FA DUP8 DUP3 DUP9 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271B JUMPI PUSH2 0x271A PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x2727 DUP8 DUP3 DUP9 ADD PUSH2 0x2682 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x274A JUMPI PUSH2 0x2749 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2758 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2769 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x27BA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27CD JUMPI PUSH2 0x27CC PUSH2 0x2773 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x27E8 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x27F5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST PUSH2 0x2802 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x281F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x282C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST 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 0x286D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x289F JUMPI PUSH2 0x289E PUSH2 0x2833 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C0 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x28CA DUP2 DUP6 PUSH2 0x28AA JUMP JUMPDEST SWAP4 POP PUSH2 0x28DA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291C PUSH1 0x5 DUP4 PUSH2 0x28AA JUMP JUMPDEST SWAP2 POP PUSH2 0x2927 DUP3 PUSH2 0x28E6 JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x293E DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2949 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x29E5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x29A8 JUMP JUMPDEST PUSH2 0x29EF DUP7 DUP4 PUSH2 0x29A8 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2C PUSH2 0x2A27 PUSH2 0x2A22 DUP5 PUSH2 0x2250 JUMP JUMPDEST PUSH2 0x2A07 JUMP JUMPDEST PUSH2 0x2250 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A46 DUP4 PUSH2 0x2A11 JUMP JUMPDEST PUSH2 0x2A5A PUSH2 0x2A52 DUP3 PUSH2 0x2A33 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x29B5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2A6F PUSH2 0x2A62 JUMP JUMPDEST PUSH2 0x2A7A DUP2 DUP5 DUP5 PUSH2 0x2A3D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A9E JUMPI PUSH2 0x2A93 PUSH1 0x0 DUP3 PUSH2 0x2A67 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2A80 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2AE3 JUMPI PUSH2 0x2AB4 DUP2 PUSH2 0x2983 JUMP JUMPDEST PUSH2 0x2ABD DUP5 PUSH2 0x2998 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2ACC JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2AE0 PUSH2 0x2AD8 DUP6 PUSH2 0x2998 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2A7F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B06 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2AE8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B1F DUP4 DUP4 PUSH2 0x2AF5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B38 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B51 JUMPI PUSH2 0x2B50 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2B5B DUP3 SLOAD PUSH2 0x27A2 JUMP JUMPDEST PUSH2 0x2B66 DUP3 DUP3 DUP6 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2B99 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2B87 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2B91 DUP6 DUP3 PUSH2 0x2B13 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2BF9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2BA7 DUP7 PUSH2 0x2983 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BCF JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2BAA JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2BEC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2BE8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2AF5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0D DUP3 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C19 DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C24 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x2C86 DUP3 PUSH2 0x2C5F JUMP JUMPDEST PUSH2 0x2C90 DUP2 DUP6 PUSH2 0x2C6A JUMP JUMPDEST SWAP4 POP PUSH2 0x2CA0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2CA9 DUP2 PUSH2 0x21E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2CC9 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CD6 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CE3 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2CF5 DUP2 DUP5 PUSH2 0x2C7B JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2D0F DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2D39 DUP5 DUP3 DUP6 ADD PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D4D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D58 DUP4 PUSH2 0x2250 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D70 JUMPI PUSH2 0x2D6F PUSH2 0x2833 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 TIMESTAMP SELFBALANCE SMOD PUSH21 0xF454E660AA990254ED1F1D8F5271FFA5F567E4E79C PUSH25 0x81BF12EA2064736F6C634300081A0033000000000000000000 ", + "sourceMap": "428:1989:18:-:0;;;608:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;692:10;1381:113:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:5;1447;:13;;;;;;:::i;:::-;;1480:7;1470;:17;;;;;;:::i;:::-;;1381:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;733:8:18::2;714:16;:27;;;;;;:::i;:::-;;766:1;751:12;:16;;;;608:166:::0;428:1989;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:75:19:-;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:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1801:1;1796:3;1792:11;1786:18;1782:1;1777:3;1773:11;1766:39;1738:2;1735:1;1731:10;1726:15;;1702:113;;;1849:1;1840:6;1835:3;1831:16;1824:27;1672:186;1610:248;;;:::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;;:::i;:::-;2119:112;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;;:::i;:::-;2401:122;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;;2391:282;2318:355;;;;:::o;2679:524::-;2759:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:119;;;2814:79;;:::i;:::-;2776:119;2955:1;2944:9;2940:17;2934:24;2985:18;2977:6;2974:30;2971:117;;;3007:79;;:::i;:::-;2971:117;3112:74;3178:7;3169:6;3158:9;3154:22;3112:74;:::i;:::-;3102:84;;2905:291;2679:524;;;;:::o;3209:99::-;3261:6;3295:5;3289:12;3279:22;;3209:99;;;:::o;3314:180::-;3362:77;3359:1;3352:88;3459:4;3456:1;3449:15;3483:4;3480:1;3473:15;3500:320;3544:6;3581:1;3575:4;3571:12;3561:22;;3628:1;3622:4;3618:12;3649:18;3639:81;;3705:4;3697:6;3693:17;3683:27;;3639:81;3767:2;3759:6;3756:14;3736:18;3733:38;3730:84;;3786:18;;:::i;:::-;3730:84;3551:269;3500:320;;;:::o;3826:141::-;3875:4;3898:3;3890:11;;3921:3;3918:1;3911:14;3955:4;3952:1;3942:18;3934:26;;3826:141;;;:::o;3973:93::-;4010:6;4057:2;4052;4045:5;4041:14;4037:23;4027:33;;3973:93;;;:::o;4072:107::-;4116:8;4166:5;4160:4;4156:16;4135:37;;4072:107;;;;:::o;4185:393::-;4254:6;4304:1;4292:10;4288:18;4327:97;4357:66;4346:9;4327:97;:::i;:::-;4445:39;4475:8;4464:9;4445:39;:::i;:::-;4433:51;;4517:4;4513:9;4506:5;4502:21;4493:30;;4566:4;4556:8;4552:19;4545:5;4542:30;4532:40;;4261:317;;4185:393;;;;;:::o;4584:77::-;4621:7;4650:5;4639:16;;4584:77;;;:::o;4667:60::-;4695:3;4716:5;4709:12;;4667:60;;;:::o;4733:142::-;4783:9;4816:53;4834:34;4843:24;4861:5;4843:24;:::i;:::-;4834:34;:::i;:::-;4816:53;:::i;:::-;4803:66;;4733:142;;;:::o;4881:75::-;4924:3;4945:5;4938:12;;4881:75;;;:::o;4962:269::-;5072:39;5103:7;5072:39;:::i;:::-;5133:91;5182:41;5206:16;5182:41;:::i;:::-;5174:6;5167:4;5161:11;5133:91;:::i;:::-;5127:4;5120:105;5038:193;4962:269;;;:::o;5237:73::-;5282:3;5237:73;:::o;5316:189::-;5393:32;;:::i;:::-;5434:65;5492:6;5484;5478:4;5434:65;:::i;:::-;5369:136;5316:189;;:::o;5511:186::-;5571:120;5588:3;5581:5;5578:14;5571:120;;;5642:39;5679:1;5672:5;5642:39;:::i;:::-;5615:1;5608:5;5604:13;5595:22;;5571:120;;;5511:186;;:::o;5703:543::-;5804:2;5799:3;5796:11;5793:446;;;5838:38;5870:5;5838:38;:::i;:::-;5922:29;5940:10;5922:29;:::i;:::-;5912:8;5908:44;6105:2;6093:10;6090:18;6087:49;;;6126:8;6111:23;;6087:49;6149:80;6205:22;6223:3;6205:22;:::i;:::-;6195:8;6191:37;6178:11;6149:80;:::i;:::-;5808:431;;5793:446;5703:543;;;:::o;6252:117::-;6306:8;6356:5;6350:4;6346:16;6325:37;;6252:117;;;;:::o;6375:169::-;6419:6;6452:51;6500:1;6496:6;6488:5;6485:1;6481:13;6452:51;:::i;:::-;6448:56;6533:4;6527;6523:15;6513:25;;6426:118;6375:169;;;;:::o;6549:295::-;6625:4;6771:29;6796:3;6790:4;6771:29;:::i;:::-;6763:37;;6833:3;6830:1;6826:11;6820:4;6817:21;6809:29;;6549:295;;;;:::o;6849:1395::-;6966:37;6999:3;6966:37;:::i;:::-;7068:18;7060:6;7057:30;7054:56;;;7090:18;;:::i;:::-;7054:56;7134:38;7166:4;7160:11;7134:38;:::i;:::-;7219:67;7279:6;7271;7265:4;7219:67;:::i;:::-;7313:1;7337:4;7324:17;;7369:2;7361:6;7358:14;7386:1;7381:618;;;;8043:1;8060:6;8057:77;;;8109:9;8104:3;8100:19;8094:26;8085:35;;8057:77;8160:67;8220:6;8213:5;8160:67;:::i;:::-;8154:4;8147:81;8016:222;7351:887;;7381:618;7433:4;7429:9;7421:6;7417:22;7467:37;7499:4;7467:37;:::i;:::-;7526:1;7540:208;7554:7;7551:1;7548:14;7540:208;;;7633:9;7628:3;7624:19;7618:26;7610:6;7603:42;7684:1;7676:6;7672:14;7662:24;;7731:2;7720:9;7716:18;7703:31;;7577:4;7574:1;7570:12;7565:17;;7540:208;;;7776:6;7767:7;7764:19;7761:179;;;7834:9;7829:3;7825:19;7819:26;7877:48;7919:4;7911:6;7907:17;7896:9;7877:48;:::i;:::-;7869:6;7862:64;7784:156;7761:179;7986:1;7982;7974:6;7970:14;7966:22;7960:4;7953:36;7388:611;;;7351:887;;6941:1303;;;6849:1395;;:::o;8250:126::-;8287:7;8327:42;8320:5;8316:54;8305:65;;8250:126;;;:::o;8382:96::-;8419:7;8448:24;8466:5;8448:24;:::i;:::-;8437:35;;8382:96;;;:::o;8484:118::-;8571:24;8589:5;8571:24;:::i;:::-;8566:3;8559:37;8484:118;;:::o;8608:222::-;8701:4;8739:2;8728:9;8724:18;8716:26;;8752:71;8820:1;8809:9;8805:17;8796:6;8752:71;:::i;:::-;8608:222;;;;:::o;428:1989:18:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addTokenToAllTokensEnumeration_1710": { + "entryPoint": 6881, + "id": 1710, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_addTokenToOwnerEnumeration_1690": { + "entryPoint": 7516, + "id": 1690, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_approve_1128": { + "entryPoint": 3176, + "id": 1128, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1194": { + "entryPoint": 5012, + "id": 1194, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_3608": { + "entryPoint": 4683, + "id": 3608, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkAuthorized_776": { + "entryPoint": 8010, + "id": 776, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkOnERC721Received_1324": { + "entryPoint": 4244, + "id": 1324, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 3216, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getApproved_703": { + "entryPoint": 3107, + "id": 703, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isAuthorized_739": { + "entryPoint": 8206, + "id": 739, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_mint_932": { + "entryPoint": 7655, + "id": 932, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2042": { + "entryPoint": 3168, + "id": 2042, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_690": { + "entryPoint": 4951, + "id": 690, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_removeTokenFromAllTokensEnumeration_1818": { + "entryPoint": 7307, + "id": 1818, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_removeTokenFromOwnerEnumeration_1770": { + "entryPoint": 6954, + "id": 1770, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_requireOwned_1260": { + "entryPoint": 2971, + "id": 1260, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_safeMint_947": { + "entryPoint": 3351, + "id": 947, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_973": { + "entryPoint": 5750, + "id": 973, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1231": { + "entryPoint": 3877, + "id": 1231, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setTokenURI_1969": { + "entryPoint": 3587, + "id": 1969, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 3679, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_update_1659": { + "entryPoint": 5465, + "id": 1659, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_update_3638": { + "entryPoint": 3194, + "id": 3638, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_update_882": { + "entryPoint": 6343, + "id": 882, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@approve_537": { + "entryPoint": 1287, + "id": 537, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_445": { + "entryPoint": 2052, + "id": 445, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_554": { + "entryPoint": 1259, + "id": 554, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getCurrentTokenId_3616": { + "entryPoint": 2024, + "id": 3616, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@isApprovedForAll_587": { + "entryPoint": 2592, + "id": 587, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_3225": { + "entryPoint": 5778, + "id": 3225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_467": { + "entryPoint": 1113, + "id": 467, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_458": { + "entryPoint": 2034, + "id": 458, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 2258, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 2238, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeMint_3599": { + "entryPoint": 1749, + "id": 3599, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@safeTransferFrom_651": { + "entryPoint": 1847, + "id": 651, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_677": { + "entryPoint": 2468, + "id": 677, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_570": { + "entryPoint": 2446, + "id": 570, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setBaseURI_3566": { + "entryPoint": 1997, + "id": 3566, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@supportsInterface_1524": { + "entryPoint": 4829, + "id": 1524, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1893": { + "entryPoint": 2874, + "id": 1893, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2338": { + "entryPoint": 7904, + "id": 2338, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3710": { + "entryPoint": 1095, + "id": 3710, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_417": { + "entryPoint": 6117, + "id": 417, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_476": { + "entryPoint": 2300, + "id": 476, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2128": { + "entryPoint": 3381, + "id": 2128, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenByIndex_1590": { + "entryPoint": 1879, + "id": 1590, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenOfOwnerByIndex_1553": { + "entryPoint": 1580, + "id": 1553, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@tokenURI_3693": { + "entryPoint": 2497, + "id": 3693, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@totalSupply_1563": { + "entryPoint": 1309, + "id": 1563, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_633": { + "entryPoint": 1322, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@transferOwnership_126": { + "entryPoint": 2740, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 9792, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 9450, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 8998, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 9658, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8486, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 11520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 9858, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 9516, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 8817, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 9208, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 10035, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 9125, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 9904, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 9679, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 9019, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8507, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 11541, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 9562, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 8838, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 8933, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8564, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 11387, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8693, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10511, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9083, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11265, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 10546, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 8948, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 11444, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 10250, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 10195, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8579, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8750, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 9098, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9359, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8399, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9743, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 9386, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 10627, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 11359, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8606, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 11370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8617, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10410, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 11586, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 10914, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 8915, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8552, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8419, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 8883, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8784, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 10879, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 10769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 11055, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9435, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8634, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 10648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 10146, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 11027, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9310, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 10759, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 10338, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 10997, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 10291, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 11312, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 10099, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x31": { + "entryPoint": 11638, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 10580, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9263, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 10803, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9253, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9258, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8414, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8409, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 8676, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 10664, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 10984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 10855, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972": { + "entryPoint": 10470, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 10677, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 10813, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 8975, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 9635, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 8794, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 10850, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:23090:19", + "nodeType": "YulBlock", + "src": "0:23090:19", + "statements": [ + { + "body": { + "nativeSrc": "47:35:19", + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nativeSrc": "57:19:19", + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:19", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:19", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nativeSrc": "67:9:19", + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:19", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:19", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nativeSrc": "177:28:19", + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:19", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:19", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:19", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:19", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nativeSrc": "300:28:19", + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:19", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:19", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:19", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:19", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nativeSrc": "378:105:19", + "nodeType": "YulBlock", + "src": "378:105:19", + "statements": [ + { + "nativeSrc": "388:89:19", + "nodeType": "YulAssignment", + "src": "388:89:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:19", + "nodeType": "YulIdentifier", + "src": "403:5:19" + }, + { + "kind": "number", + "nativeSrc": "410:66:19", + "nodeType": "YulLiteral", + "src": "410:66:19", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:19", + "nodeType": "YulIdentifier", + "src": "399:3:19" + }, + "nativeSrc": "399:78:19", + "nodeType": "YulFunctionCall", + "src": "399:78:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:19", + "nodeType": "YulIdentifier", + "src": "388:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:19", + "nodeType": "YulTypedName", + "src": "360:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:19", + "nodeType": "YulTypedName", + "src": "370:7:19", + "type": "" + } + ], + "src": "334:149:19" + }, + { + "body": { + "nativeSrc": "531:78:19", + "nodeType": "YulBlock", + "src": "531:78:19", + "statements": [ + { + "body": { + "nativeSrc": "587:16:19", + "nodeType": "YulBlock", + "src": "587:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:19", + "nodeType": "YulLiteral", + "src": "596:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:19", + "nodeType": "YulLiteral", + "src": "599:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:19", + "nodeType": "YulIdentifier", + "src": "589:6:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulFunctionCall", + "src": "589:12:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulExpressionStatement", + "src": "589:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:19", + "nodeType": "YulIdentifier", + "src": "554:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:19", + "nodeType": "YulIdentifier", + "src": "578:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:19", + "nodeType": "YulIdentifier", + "src": "561:16:19" + }, + "nativeSrc": "561:23:19", + "nodeType": "YulFunctionCall", + "src": "561:23:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:19", + "nodeType": "YulIdentifier", + "src": "551:2:19" + }, + "nativeSrc": "551:34:19", + "nodeType": "YulFunctionCall", + "src": "551:34:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:19", + "nodeType": "YulIdentifier", + "src": "544:6:19" + }, + "nativeSrc": "544:42:19", + "nodeType": "YulFunctionCall", + "src": "544:42:19" + }, + "nativeSrc": "541:62:19", + "nodeType": "YulIf", + "src": "541:62:19" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:19", + "nodeType": "YulTypedName", + "src": "524:5:19", + "type": "" + } + ], + "src": "489:120:19" + }, + { + "body": { + "nativeSrc": "666:86:19", + "nodeType": "YulBlock", + "src": "666:86:19", + "statements": [ + { + "nativeSrc": "676:29:19", + "nodeType": "YulAssignment", + "src": "676:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:19", + "nodeType": "YulIdentifier", + "src": "698:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:19", + "nodeType": "YulIdentifier", + "src": "685:12:19" + }, + "nativeSrc": "685:20:19", + "nodeType": "YulFunctionCall", + "src": "685:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:19", + "nodeType": "YulIdentifier", + "src": "676:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:19", + "nodeType": "YulIdentifier", + "src": "740:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:19", + "nodeType": "YulIdentifier", + "src": "714:25:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulFunctionCall", + "src": "714:32:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulExpressionStatement", + "src": "714:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:19", + "nodeType": "YulTypedName", + "src": "644:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:19", + "nodeType": "YulTypedName", + "src": "652:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:19", + "nodeType": "YulTypedName", + "src": "660:5:19", + "type": "" + } + ], + "src": "615:137:19" + }, + { + "body": { + "nativeSrc": "823:262:19", + "nodeType": "YulBlock", + "src": "823:262:19", + "statements": [ + { + "body": { + "nativeSrc": "869:83:19", + "nodeType": "YulBlock", + "src": "869:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:19", + "nodeType": "YulIdentifier", + "src": "871:77:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulFunctionCall", + "src": "871:79:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulExpressionStatement", + "src": "871:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:19", + "nodeType": "YulIdentifier", + "src": "844:7:19" + }, + { + "name": "headStart", + "nativeSrc": "853:9:19", + "nodeType": "YulIdentifier", + "src": "853:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:19", + "nodeType": "YulIdentifier", + "src": "840:3:19" + }, + "nativeSrc": "840:23:19", + "nodeType": "YulFunctionCall", + "src": "840:23:19" + }, + { + "kind": "number", + "nativeSrc": "865:2:19", + "nodeType": "YulLiteral", + "src": "865:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:19", + "nodeType": "YulIdentifier", + "src": "836:3:19" + }, + "nativeSrc": "836:32:19", + "nodeType": "YulFunctionCall", + "src": "836:32:19" + }, + "nativeSrc": "833:119:19", + "nodeType": "YulIf", + "src": "833:119:19" + }, + { + "nativeSrc": "962:116:19", + "nodeType": "YulBlock", + "src": "962:116:19", + "statements": [ + { + "nativeSrc": "977:15:19", + "nodeType": "YulVariableDeclaration", + "src": "977:15:19", + "value": { + "kind": "number", + "nativeSrc": "991:1:19", + "nodeType": "YulLiteral", + "src": "991:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:19", + "nodeType": "YulTypedName", + "src": "981:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:19", + "nodeType": "YulAssignment", + "src": "1006:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:19", + "nodeType": "YulIdentifier", + "src": "1040:9:19" + }, + { + "name": "offset", + "nativeSrc": "1051:6:19", + "nodeType": "YulIdentifier", + "src": "1051:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:19", + "nodeType": "YulIdentifier", + "src": "1036:3:19" + }, + "nativeSrc": "1036:22:19", + "nodeType": "YulFunctionCall", + "src": "1036:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:19", + "nodeType": "YulIdentifier", + "src": "1060:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:19", + "nodeType": "YulIdentifier", + "src": "1016:19:19" + }, + "nativeSrc": "1016:52:19", + "nodeType": "YulFunctionCall", + "src": "1016:52:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:19", + "nodeType": "YulIdentifier", + "src": "1006:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:19", + "nodeType": "YulTypedName", + "src": "793:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:19", + "nodeType": "YulTypedName", + "src": "804:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:19", + "nodeType": "YulTypedName", + "src": "816:6:19", + "type": "" + } + ], + "src": "758:327:19" + }, + { + "body": { + "nativeSrc": "1133:48:19", + "nodeType": "YulBlock", + "src": "1133:48:19", + "statements": [ + { + "nativeSrc": "1143:32:19", + "nodeType": "YulAssignment", + "src": "1143:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:19", + "nodeType": "YulIdentifier", + "src": "1168:5:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:19", + "nodeType": "YulIdentifier", + "src": "1161:6:19" + }, + "nativeSrc": "1161:13:19", + "nodeType": "YulFunctionCall", + "src": "1161:13:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:19", + "nodeType": "YulIdentifier", + "src": "1154:6:19" + }, + "nativeSrc": "1154:21:19", + "nodeType": "YulFunctionCall", + "src": "1154:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:19", + "nodeType": "YulIdentifier", + "src": "1143:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:19", + "nodeType": "YulTypedName", + "src": "1115:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:19", + "nodeType": "YulTypedName", + "src": "1125:7:19", + "type": "" + } + ], + "src": "1091:90:19" + }, + { + "body": { + "nativeSrc": "1246:50:19", + "nodeType": "YulBlock", + "src": "1246:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:19", + "nodeType": "YulIdentifier", + "src": "1263:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:19", + "nodeType": "YulIdentifier", + "src": "1283:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:19", + "nodeType": "YulIdentifier", + "src": "1268:14:19" + }, + "nativeSrc": "1268:21:19", + "nodeType": "YulFunctionCall", + "src": "1268:21:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:19", + "nodeType": "YulIdentifier", + "src": "1256:6:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulFunctionCall", + "src": "1256:34:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulExpressionStatement", + "src": "1256:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:19", + "nodeType": "YulTypedName", + "src": "1234:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:19", + "nodeType": "YulTypedName", + "src": "1241:3:19", + "type": "" + } + ], + "src": "1187:109:19" + }, + { + "body": { + "nativeSrc": "1394:118:19", + "nodeType": "YulBlock", + "src": "1394:118:19", + "statements": [ + { + "nativeSrc": "1404:26:19", + "nodeType": "YulAssignment", + "src": "1404:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:19", + "nodeType": "YulIdentifier", + "src": "1416:9:19" + }, + { + "kind": "number", + "nativeSrc": "1427:2:19", + "nodeType": "YulLiteral", + "src": "1427:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:19", + "nodeType": "YulIdentifier", + "src": "1412:3:19" + }, + "nativeSrc": "1412:18:19", + "nodeType": "YulFunctionCall", + "src": "1412:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:19", + "nodeType": "YulIdentifier", + "src": "1404:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:19", + "nodeType": "YulIdentifier", + "src": "1478:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:19", + "nodeType": "YulIdentifier", + "src": "1491:9:19" + }, + { + "kind": "number", + "nativeSrc": "1502:1:19", + "nodeType": "YulLiteral", + "src": "1502:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:19", + "nodeType": "YulIdentifier", + "src": "1487:3:19" + }, + "nativeSrc": "1487:17:19", + "nodeType": "YulFunctionCall", + "src": "1487:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:19", + "nodeType": "YulIdentifier", + "src": "1440:37:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulFunctionCall", + "src": "1440:65:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulExpressionStatement", + "src": "1440:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:19", + "nodeType": "YulTypedName", + "src": "1366:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:19", + "nodeType": "YulTypedName", + "src": "1378:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:19", + "nodeType": "YulTypedName", + "src": "1389:4:19", + "type": "" + } + ], + "src": "1302:210:19" + }, + { + "body": { + "nativeSrc": "1577:40:19", + "nodeType": "YulBlock", + "src": "1577:40:19", + "statements": [ + { + "nativeSrc": "1588:22:19", + "nodeType": "YulAssignment", + "src": "1588:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1604:5:19", + "nodeType": "YulIdentifier", + "src": "1604:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1598:5:19", + "nodeType": "YulIdentifier", + "src": "1598:5:19" + }, + "nativeSrc": "1598:12:19", + "nodeType": "YulFunctionCall", + "src": "1598:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "1588:6:19", + "nodeType": "YulIdentifier", + "src": "1588:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "1518:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1560:5:19", + "nodeType": "YulTypedName", + "src": "1560:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "1570:6:19", + "nodeType": "YulTypedName", + "src": "1570:6:19", + "type": "" + } + ], + "src": "1518:99:19" + }, + { + "body": { + "nativeSrc": "1719:73:19", + "nodeType": "YulBlock", + "src": "1719:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1736:3:19", + "nodeType": "YulIdentifier", + "src": "1736:3:19" + }, + { + "name": "length", + "nativeSrc": "1741:6:19", + "nodeType": "YulIdentifier", + "src": "1741:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1729:6:19", + "nodeType": "YulIdentifier", + "src": "1729:6:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulFunctionCall", + "src": "1729:19:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulExpressionStatement", + "src": "1729:19:19" + }, + { + "nativeSrc": "1757:29:19", + "nodeType": "YulAssignment", + "src": "1757:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1776:3:19", + "nodeType": "YulIdentifier", + "src": "1776:3:19" + }, + { + "kind": "number", + "nativeSrc": "1781:4:19", + "nodeType": "YulLiteral", + "src": "1781:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:19", + "nodeType": "YulIdentifier", + "src": "1772:3:19" + }, + "nativeSrc": "1772:14:19", + "nodeType": "YulFunctionCall", + "src": "1772:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "1757:11:19", + "nodeType": "YulIdentifier", + "src": "1757:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1623:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1691:3:19", + "nodeType": "YulTypedName", + "src": "1691:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1696:6:19", + "nodeType": "YulTypedName", + "src": "1696:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "1707:11:19", + "nodeType": "YulTypedName", + "src": "1707:11:19", + "type": "" + } + ], + "src": "1623:169:19" + }, + { + "body": { + "nativeSrc": "1860:186:19", + "nodeType": "YulBlock", + "src": "1860:186:19", + "statements": [ + { + "nativeSrc": "1871:10:19", + "nodeType": "YulVariableDeclaration", + "src": "1871:10:19", + "value": { + "kind": "number", + "nativeSrc": "1880:1:19", + "nodeType": "YulLiteral", + "src": "1880:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1875:1:19", + "nodeType": "YulTypedName", + "src": "1875:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1940:63:19", + "nodeType": "YulBlock", + "src": "1940:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1965:3:19", + "nodeType": "YulIdentifier", + "src": "1965:3:19" + }, + { + "name": "i", + "nativeSrc": "1970:1:19", + "nodeType": "YulIdentifier", + "src": "1970:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1961:3:19", + "nodeType": "YulIdentifier", + "src": "1961:3:19" + }, + "nativeSrc": "1961:11:19", + "nodeType": "YulFunctionCall", + "src": "1961:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1984:3:19", + "nodeType": "YulIdentifier", + "src": "1984:3:19" + }, + { + "name": "i", + "nativeSrc": "1989:1:19", + "nodeType": "YulIdentifier", + "src": "1989:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1980:3:19", + "nodeType": "YulIdentifier", + "src": "1980:3:19" + }, + "nativeSrc": "1980:11:19", + "nodeType": "YulFunctionCall", + "src": "1980:11:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1974:5:19", + "nodeType": "YulIdentifier", + "src": "1974:5:19" + }, + "nativeSrc": "1974:18:19", + "nodeType": "YulFunctionCall", + "src": "1974:18:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1954:6:19", + "nodeType": "YulIdentifier", + "src": "1954:6:19" + }, + "nativeSrc": "1954:39:19", + "nodeType": "YulFunctionCall", + "src": "1954:39:19" + }, + "nativeSrc": "1954:39:19", + "nodeType": "YulExpressionStatement", + "src": "1954:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1901:1:19", + "nodeType": "YulIdentifier", + "src": "1901:1:19" + }, + { + "name": "length", + "nativeSrc": "1904:6:19", + "nodeType": "YulIdentifier", + "src": "1904:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1898:2:19", + "nodeType": "YulIdentifier", + "src": "1898:2:19" + }, + "nativeSrc": "1898:13:19", + "nodeType": "YulFunctionCall", + "src": "1898:13:19" + }, + "nativeSrc": "1890:113:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1912:19:19", + "nodeType": "YulBlock", + "src": "1912:19:19", + "statements": [ + { + "nativeSrc": "1914:15:19", + "nodeType": "YulAssignment", + "src": "1914:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1923:1:19", + "nodeType": "YulIdentifier", + "src": "1923:1:19" + }, + { + "kind": "number", + "nativeSrc": "1926:2:19", + "nodeType": "YulLiteral", + "src": "1926:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1919:3:19", + "nodeType": "YulIdentifier", + "src": "1919:3:19" + }, + "nativeSrc": "1919:10:19", + "nodeType": "YulFunctionCall", + "src": "1919:10:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1914:1:19", + "nodeType": "YulIdentifier", + "src": "1914:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1894:3:19", + "nodeType": "YulBlock", + "src": "1894:3:19", + "statements": [] + }, + "src": "1890:113:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2023:3:19", + "nodeType": "YulIdentifier", + "src": "2023:3:19" + }, + { + "name": "length", + "nativeSrc": "2028:6:19", + "nodeType": "YulIdentifier", + "src": "2028:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2019:3:19", + "nodeType": "YulIdentifier", + "src": "2019:3:19" + }, + "nativeSrc": "2019:16:19", + "nodeType": "YulFunctionCall", + "src": "2019:16:19" + }, + { + "kind": "number", + "nativeSrc": "2037:1:19", + "nodeType": "YulLiteral", + "src": "2037:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2012:6:19", + "nodeType": "YulIdentifier", + "src": "2012:6:19" + }, + "nativeSrc": "2012:27:19", + "nodeType": "YulFunctionCall", + "src": "2012:27:19" + }, + "nativeSrc": "2012:27:19", + "nodeType": "YulExpressionStatement", + "src": "2012:27:19" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1798:248:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1842:3:19", + "nodeType": "YulTypedName", + "src": "1842:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1847:3:19", + "nodeType": "YulTypedName", + "src": "1847:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1852:6:19", + "nodeType": "YulTypedName", + "src": "1852:6:19", + "type": "" + } + ], + "src": "1798:248:19" + }, + { + "body": { + "nativeSrc": "2100:54:19", + "nodeType": "YulBlock", + "src": "2100:54:19", + "statements": [ + { + "nativeSrc": "2110:38:19", + "nodeType": "YulAssignment", + "src": "2110:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2128:5:19", + "nodeType": "YulIdentifier", + "src": "2128:5:19" + }, + { + "kind": "number", + "nativeSrc": "2135:2:19", + "nodeType": "YulLiteral", + "src": "2135:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2124:3:19", + "nodeType": "YulIdentifier", + "src": "2124:3:19" + }, + "nativeSrc": "2124:14:19", + "nodeType": "YulFunctionCall", + "src": "2124:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2144:2:19", + "nodeType": "YulLiteral", + "src": "2144:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2140:3:19", + "nodeType": "YulIdentifier", + "src": "2140:3:19" + }, + "nativeSrc": "2140:7:19", + "nodeType": "YulFunctionCall", + "src": "2140:7:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2120:3:19", + "nodeType": "YulIdentifier", + "src": "2120:3:19" + }, + "nativeSrc": "2120:28:19", + "nodeType": "YulFunctionCall", + "src": "2120:28:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2110:6:19", + "nodeType": "YulIdentifier", + "src": "2110:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "2052:102:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2083:5:19", + "nodeType": "YulTypedName", + "src": "2083:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2093:6:19", + "nodeType": "YulTypedName", + "src": "2093:6:19", + "type": "" + } + ], + "src": "2052:102:19" + }, + { + "body": { + "nativeSrc": "2252:285:19", + "nodeType": "YulBlock", + "src": "2252:285:19", + "statements": [ + { + "nativeSrc": "2262:53:19", + "nodeType": "YulVariableDeclaration", + "src": "2262:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2309:5:19", + "nodeType": "YulIdentifier", + "src": "2309:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "2276:32:19", + "nodeType": "YulIdentifier", + "src": "2276:32:19" + }, + "nativeSrc": "2276:39:19", + "nodeType": "YulFunctionCall", + "src": "2276:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2266:6:19", + "nodeType": "YulTypedName", + "src": "2266:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2324:78:19", + "nodeType": "YulAssignment", + "src": "2324:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2390:3:19", + "nodeType": "YulIdentifier", + "src": "2390:3:19" + }, + { + "name": "length", + "nativeSrc": "2395:6:19", + "nodeType": "YulIdentifier", + "src": "2395:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2331:58:19", + "nodeType": "YulIdentifier", + "src": "2331:58:19" + }, + "nativeSrc": "2331:71:19", + "nodeType": "YulFunctionCall", + "src": "2331:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2324:3:19", + "nodeType": "YulIdentifier", + "src": "2324:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2450:5:19", + "nodeType": "YulIdentifier", + "src": "2450:5:19" + }, + { + "kind": "number", + "nativeSrc": "2457:4:19", + "nodeType": "YulLiteral", + "src": "2457:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2446:3:19", + "nodeType": "YulIdentifier", + "src": "2446:3:19" + }, + "nativeSrc": "2446:16:19", + "nodeType": "YulFunctionCall", + "src": "2446:16:19" + }, + { + "name": "pos", + "nativeSrc": "2464:3:19", + "nodeType": "YulIdentifier", + "src": "2464:3:19" + }, + { + "name": "length", + "nativeSrc": "2469:6:19", + "nodeType": "YulIdentifier", + "src": "2469:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2411:34:19", + "nodeType": "YulIdentifier", + "src": "2411:34:19" + }, + "nativeSrc": "2411:65:19", + "nodeType": "YulFunctionCall", + "src": "2411:65:19" + }, + "nativeSrc": "2411:65:19", + "nodeType": "YulExpressionStatement", + "src": "2411:65:19" + }, + { + "nativeSrc": "2485:46:19", + "nodeType": "YulAssignment", + "src": "2485:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2496:3:19", + "nodeType": "YulIdentifier", + "src": "2496:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2523:6:19", + "nodeType": "YulIdentifier", + "src": "2523:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2501:21:19", + "nodeType": "YulIdentifier", + "src": "2501:21:19" + }, + "nativeSrc": "2501:29:19", + "nodeType": "YulFunctionCall", + "src": "2501:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2492:3:19", + "nodeType": "YulIdentifier", + "src": "2492:3:19" + }, + "nativeSrc": "2492:39:19", + "nodeType": "YulFunctionCall", + "src": "2492:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2485:3:19", + "nodeType": "YulIdentifier", + "src": "2485:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2160:377:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2233:5:19", + "nodeType": "YulTypedName", + "src": "2233:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2240:3:19", + "nodeType": "YulTypedName", + "src": "2240:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2248:3:19", + "nodeType": "YulTypedName", + "src": "2248:3:19", + "type": "" + } + ], + "src": "2160:377:19" + }, + { + "body": { + "nativeSrc": "2661:195:19", + "nodeType": "YulBlock", + "src": "2661:195:19", + "statements": [ + { + "nativeSrc": "2671:26:19", + "nodeType": "YulAssignment", + "src": "2671:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2683:9:19", + "nodeType": "YulIdentifier", + "src": "2683:9:19" + }, + { + "kind": "number", + "nativeSrc": "2694:2:19", + "nodeType": "YulLiteral", + "src": "2694:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2679:3:19", + "nodeType": "YulIdentifier", + "src": "2679:3:19" + }, + "nativeSrc": "2679:18:19", + "nodeType": "YulFunctionCall", + "src": "2679:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2671:4:19", + "nodeType": "YulIdentifier", + "src": "2671:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2718:9:19", + "nodeType": "YulIdentifier", + "src": "2718:9:19" + }, + { + "kind": "number", + "nativeSrc": "2729:1:19", + "nodeType": "YulLiteral", + "src": "2729:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2714:3:19", + "nodeType": "YulIdentifier", + "src": "2714:3:19" + }, + "nativeSrc": "2714:17:19", + "nodeType": "YulFunctionCall", + "src": "2714:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "2737:4:19", + "nodeType": "YulIdentifier", + "src": "2737:4:19" + }, + { + "name": "headStart", + "nativeSrc": "2743:9:19", + "nodeType": "YulIdentifier", + "src": "2743:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2733:3:19", + "nodeType": "YulIdentifier", + "src": "2733:3:19" + }, + "nativeSrc": "2733:20:19", + "nodeType": "YulFunctionCall", + "src": "2733:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2707:6:19", + "nodeType": "YulIdentifier", + "src": "2707:6:19" + }, + "nativeSrc": "2707:47:19", + "nodeType": "YulFunctionCall", + "src": "2707:47:19" + }, + "nativeSrc": "2707:47:19", + "nodeType": "YulExpressionStatement", + "src": "2707:47:19" + }, + { + "nativeSrc": "2763:86:19", + "nodeType": "YulAssignment", + "src": "2763:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2835:6:19", + "nodeType": "YulIdentifier", + "src": "2835:6:19" + }, + { + "name": "tail", + "nativeSrc": "2844:4:19", + "nodeType": "YulIdentifier", + "src": "2844:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2771:63:19", + "nodeType": "YulIdentifier", + "src": "2771:63:19" + }, + "nativeSrc": "2771:78:19", + "nodeType": "YulFunctionCall", + "src": "2771:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2763:4:19", + "nodeType": "YulIdentifier", + "src": "2763:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2543:313:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2633:9:19", + "nodeType": "YulTypedName", + "src": "2633:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2645:6:19", + "nodeType": "YulTypedName", + "src": "2645:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2656:4:19", + "nodeType": "YulTypedName", + "src": "2656:4:19", + "type": "" + } + ], + "src": "2543:313:19" + }, + { + "body": { + "nativeSrc": "2907:32:19", + "nodeType": "YulBlock", + "src": "2907:32:19", + "statements": [ + { + "nativeSrc": "2917:16:19", + "nodeType": "YulAssignment", + "src": "2917:16:19", + "value": { + "name": "value", + "nativeSrc": "2928:5:19", + "nodeType": "YulIdentifier", + "src": "2928:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2917:7:19", + "nodeType": "YulIdentifier", + "src": "2917:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2862:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2889:5:19", + "nodeType": "YulTypedName", + "src": "2889:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2899:7:19", + "nodeType": "YulTypedName", + "src": "2899:7:19", + "type": "" + } + ], + "src": "2862:77:19" + }, + { + "body": { + "nativeSrc": "2988:79:19", + "nodeType": "YulBlock", + "src": "2988:79:19", + "statements": [ + { + "body": { + "nativeSrc": "3045:16:19", + "nodeType": "YulBlock", + "src": "3045:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3054:1:19", + "nodeType": "YulLiteral", + "src": "3054:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3057:1:19", + "nodeType": "YulLiteral", + "src": "3057:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3047:6:19", + "nodeType": "YulIdentifier", + "src": "3047:6:19" + }, + "nativeSrc": "3047:12:19", + "nodeType": "YulFunctionCall", + "src": "3047:12:19" + }, + "nativeSrc": "3047:12:19", + "nodeType": "YulExpressionStatement", + "src": "3047:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3011:5:19", + "nodeType": "YulIdentifier", + "src": "3011:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3036:5:19", + "nodeType": "YulIdentifier", + "src": "3036:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "3018:17:19", + "nodeType": "YulIdentifier", + "src": "3018:17:19" + }, + "nativeSrc": "3018:24:19", + "nodeType": "YulFunctionCall", + "src": "3018:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3008:2:19", + "nodeType": "YulIdentifier", + "src": "3008:2:19" + }, + "nativeSrc": "3008:35:19", + "nodeType": "YulFunctionCall", + "src": "3008:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3001:6:19", + "nodeType": "YulIdentifier", + "src": "3001:6:19" + }, + "nativeSrc": "3001:43:19", + "nodeType": "YulFunctionCall", + "src": "3001:43:19" + }, + "nativeSrc": "2998:63:19", + "nodeType": "YulIf", + "src": "2998:63:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2945:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2981:5:19", + "nodeType": "YulTypedName", + "src": "2981:5:19", + "type": "" + } + ], + "src": "2945:122:19" + }, + { + "body": { + "nativeSrc": "3125:87:19", + "nodeType": "YulBlock", + "src": "3125:87:19", + "statements": [ + { + "nativeSrc": "3135:29:19", + "nodeType": "YulAssignment", + "src": "3135:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3157:6:19", + "nodeType": "YulIdentifier", + "src": "3157:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3144:12:19", + "nodeType": "YulIdentifier", + "src": "3144:12:19" + }, + "nativeSrc": "3144:20:19", + "nodeType": "YulFunctionCall", + "src": "3144:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3135:5:19", + "nodeType": "YulIdentifier", + "src": "3135:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3200:5:19", + "nodeType": "YulIdentifier", + "src": "3200:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3173:26:19", + "nodeType": "YulIdentifier", + "src": "3173:26:19" + }, + "nativeSrc": "3173:33:19", + "nodeType": "YulFunctionCall", + "src": "3173:33:19" + }, + "nativeSrc": "3173:33:19", + "nodeType": "YulExpressionStatement", + "src": "3173:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "3073:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3103:6:19", + "nodeType": "YulTypedName", + "src": "3103:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3111:3:19", + "nodeType": "YulTypedName", + "src": "3111:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3119:5:19", + "nodeType": "YulTypedName", + "src": "3119:5:19", + "type": "" + } + ], + "src": "3073:139:19" + }, + { + "body": { + "nativeSrc": "3284:263:19", + "nodeType": "YulBlock", + "src": "3284:263:19", + "statements": [ + { + "body": { + "nativeSrc": "3330:83:19", + "nodeType": "YulBlock", + "src": "3330:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3332:77:19", + "nodeType": "YulIdentifier", + "src": "3332:77:19" + }, + "nativeSrc": "3332:79:19", + "nodeType": "YulFunctionCall", + "src": "3332:79:19" + }, + "nativeSrc": "3332:79:19", + "nodeType": "YulExpressionStatement", + "src": "3332:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3305:7:19", + "nodeType": "YulIdentifier", + "src": "3305:7:19" + }, + { + "name": "headStart", + "nativeSrc": "3314:9:19", + "nodeType": "YulIdentifier", + "src": "3314:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3301:3:19", + "nodeType": "YulIdentifier", + "src": "3301:3:19" + }, + "nativeSrc": "3301:23:19", + "nodeType": "YulFunctionCall", + "src": "3301:23:19" + }, + { + "kind": "number", + "nativeSrc": "3326:2:19", + "nodeType": "YulLiteral", + "src": "3326:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3297:3:19", + "nodeType": "YulIdentifier", + "src": "3297:3:19" + }, + "nativeSrc": "3297:32:19", + "nodeType": "YulFunctionCall", + "src": "3297:32:19" + }, + "nativeSrc": "3294:119:19", + "nodeType": "YulIf", + "src": "3294:119:19" + }, + { + "nativeSrc": "3423:117:19", + "nodeType": "YulBlock", + "src": "3423:117:19", + "statements": [ + { + "nativeSrc": "3438:15:19", + "nodeType": "YulVariableDeclaration", + "src": "3438:15:19", + "value": { + "kind": "number", + "nativeSrc": "3452:1:19", + "nodeType": "YulLiteral", + "src": "3452:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3442:6:19", + "nodeType": "YulTypedName", + "src": "3442:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "3467:63:19", + "nodeType": "YulAssignment", + "src": "3467:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3502:9:19", + "nodeType": "YulIdentifier", + "src": "3502:9:19" + }, + { + "name": "offset", + "nativeSrc": "3513:6:19", + "nodeType": "YulIdentifier", + "src": "3513:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3498:3:19", + "nodeType": "YulIdentifier", + "src": "3498:3:19" + }, + "nativeSrc": "3498:22:19", + "nodeType": "YulFunctionCall", + "src": "3498:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "3522:7:19", + "nodeType": "YulIdentifier", + "src": "3522:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3477:20:19", + "nodeType": "YulIdentifier", + "src": "3477:20:19" + }, + "nativeSrc": "3477:53:19", + "nodeType": "YulFunctionCall", + "src": "3477:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3467:6:19", + "nodeType": "YulIdentifier", + "src": "3467:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3218:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3254:9:19", + "nodeType": "YulTypedName", + "src": "3254:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3265:7:19", + "nodeType": "YulTypedName", + "src": "3265:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3277:6:19", + "nodeType": "YulTypedName", + "src": "3277:6:19", + "type": "" + } + ], + "src": "3218:329:19" + }, + { + "body": { + "nativeSrc": "3598:81:19", + "nodeType": "YulBlock", + "src": "3598:81:19", + "statements": [ + { + "nativeSrc": "3608:65:19", + "nodeType": "YulAssignment", + "src": "3608:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3623:5:19", + "nodeType": "YulIdentifier", + "src": "3623:5:19" + }, + { + "kind": "number", + "nativeSrc": "3630:42:19", + "nodeType": "YulLiteral", + "src": "3630:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3619:3:19", + "nodeType": "YulIdentifier", + "src": "3619:3:19" + }, + "nativeSrc": "3619:54:19", + "nodeType": "YulFunctionCall", + "src": "3619:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3608:7:19", + "nodeType": "YulIdentifier", + "src": "3608:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3553:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3580:5:19", + "nodeType": "YulTypedName", + "src": "3580:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3590:7:19", + "nodeType": "YulTypedName", + "src": "3590:7:19", + "type": "" + } + ], + "src": "3553:126:19" + }, + { + "body": { + "nativeSrc": "3730:51:19", + "nodeType": "YulBlock", + "src": "3730:51:19", + "statements": [ + { + "nativeSrc": "3740:35:19", + "nodeType": "YulAssignment", + "src": "3740:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3769:5:19", + "nodeType": "YulIdentifier", + "src": "3769:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3751:17:19", + "nodeType": "YulIdentifier", + "src": "3751:17:19" + }, + "nativeSrc": "3751:24:19", + "nodeType": "YulFunctionCall", + "src": "3751:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3740:7:19", + "nodeType": "YulIdentifier", + "src": "3740:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3685:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3712:5:19", + "nodeType": "YulTypedName", + "src": "3712:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3722:7:19", + "nodeType": "YulTypedName", + "src": "3722:7:19", + "type": "" + } + ], + "src": "3685:96:19" + }, + { + "body": { + "nativeSrc": "3852:53:19", + "nodeType": "YulBlock", + "src": "3852:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3869:3:19", + "nodeType": "YulIdentifier", + "src": "3869:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3892:5:19", + "nodeType": "YulIdentifier", + "src": "3892:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3874:17:19", + "nodeType": "YulIdentifier", + "src": "3874:17:19" + }, + "nativeSrc": "3874:24:19", + "nodeType": "YulFunctionCall", + "src": "3874:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3862:6:19", + "nodeType": "YulIdentifier", + "src": "3862:6:19" + }, + "nativeSrc": "3862:37:19", + "nodeType": "YulFunctionCall", + "src": "3862:37:19" + }, + "nativeSrc": "3862:37:19", + "nodeType": "YulExpressionStatement", + "src": "3862:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3787:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3840:5:19", + "nodeType": "YulTypedName", + "src": "3840:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3847:3:19", + "nodeType": "YulTypedName", + "src": "3847:3:19", + "type": "" + } + ], + "src": "3787:118:19" + }, + { + "body": { + "nativeSrc": "4009:124:19", + "nodeType": "YulBlock", + "src": "4009:124:19", + "statements": [ + { + "nativeSrc": "4019:26:19", + "nodeType": "YulAssignment", + "src": "4019:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4031:9:19", + "nodeType": "YulIdentifier", + "src": "4031:9:19" + }, + { + "kind": "number", + "nativeSrc": "4042:2:19", + "nodeType": "YulLiteral", + "src": "4042:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4027:3:19", + "nodeType": "YulIdentifier", + "src": "4027:3:19" + }, + "nativeSrc": "4027:18:19", + "nodeType": "YulFunctionCall", + "src": "4027:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4019:4:19", + "nodeType": "YulIdentifier", + "src": "4019:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4099:6:19", + "nodeType": "YulIdentifier", + "src": "4099:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4112:9:19", + "nodeType": "YulIdentifier", + "src": "4112:9:19" + }, + { + "kind": "number", + "nativeSrc": "4123:1:19", + "nodeType": "YulLiteral", + "src": "4123:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4108:3:19", + "nodeType": "YulIdentifier", + "src": "4108:3:19" + }, + "nativeSrc": "4108:17:19", + "nodeType": "YulFunctionCall", + "src": "4108:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4055:43:19", + "nodeType": "YulIdentifier", + "src": "4055:43:19" + }, + "nativeSrc": "4055:71:19", + "nodeType": "YulFunctionCall", + "src": "4055:71:19" + }, + "nativeSrc": "4055:71:19", + "nodeType": "YulExpressionStatement", + "src": "4055:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "3911:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3981:9:19", + "nodeType": "YulTypedName", + "src": "3981:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3993:6:19", + "nodeType": "YulTypedName", + "src": "3993:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4004:4:19", + "nodeType": "YulTypedName", + "src": "4004:4:19", + "type": "" + } + ], + "src": "3911:222:19" + }, + { + "body": { + "nativeSrc": "4182:79:19", + "nodeType": "YulBlock", + "src": "4182:79:19", + "statements": [ + { + "body": { + "nativeSrc": "4239:16:19", + "nodeType": "YulBlock", + "src": "4239:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4248:1:19", + "nodeType": "YulLiteral", + "src": "4248:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4251:1:19", + "nodeType": "YulLiteral", + "src": "4251:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4241:6:19", + "nodeType": "YulIdentifier", + "src": "4241:6:19" + }, + "nativeSrc": "4241:12:19", + "nodeType": "YulFunctionCall", + "src": "4241:12:19" + }, + "nativeSrc": "4241:12:19", + "nodeType": "YulExpressionStatement", + "src": "4241:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4205:5:19", + "nodeType": "YulIdentifier", + "src": "4205:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4230:5:19", + "nodeType": "YulIdentifier", + "src": "4230:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4212:17:19", + "nodeType": "YulIdentifier", + "src": "4212:17:19" + }, + "nativeSrc": "4212:24:19", + "nodeType": "YulFunctionCall", + "src": "4212:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4202:2:19", + "nodeType": "YulIdentifier", + "src": "4202:2:19" + }, + "nativeSrc": "4202:35:19", + "nodeType": "YulFunctionCall", + "src": "4202:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4195:6:19", + "nodeType": "YulIdentifier", + "src": "4195:6:19" + }, + "nativeSrc": "4195:43:19", + "nodeType": "YulFunctionCall", + "src": "4195:43:19" + }, + "nativeSrc": "4192:63:19", + "nodeType": "YulIf", + "src": "4192:63:19" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "4139:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4175:5:19", + "nodeType": "YulTypedName", + "src": "4175:5:19", + "type": "" + } + ], + "src": "4139:122:19" + }, + { + "body": { + "nativeSrc": "4319:87:19", + "nodeType": "YulBlock", + "src": "4319:87:19", + "statements": [ + { + "nativeSrc": "4329:29:19", + "nodeType": "YulAssignment", + "src": "4329:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4351:6:19", + "nodeType": "YulIdentifier", + "src": "4351:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4338:12:19", + "nodeType": "YulIdentifier", + "src": "4338:12:19" + }, + "nativeSrc": "4338:20:19", + "nodeType": "YulFunctionCall", + "src": "4338:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4329:5:19", + "nodeType": "YulIdentifier", + "src": "4329:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4394:5:19", + "nodeType": "YulIdentifier", + "src": "4394:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "4367:26:19", + "nodeType": "YulIdentifier", + "src": "4367:26:19" + }, + "nativeSrc": "4367:33:19", + "nodeType": "YulFunctionCall", + "src": "4367:33:19" + }, + "nativeSrc": "4367:33:19", + "nodeType": "YulExpressionStatement", + "src": "4367:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "4267:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4297:6:19", + "nodeType": "YulTypedName", + "src": "4297:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4305:3:19", + "nodeType": "YulTypedName", + "src": "4305:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4313:5:19", + "nodeType": "YulTypedName", + "src": "4313:5:19", + "type": "" + } + ], + "src": "4267:139:19" + }, + { + "body": { + "nativeSrc": "4495:391:19", + "nodeType": "YulBlock", + "src": "4495:391:19", + "statements": [ + { + "body": { + "nativeSrc": "4541:83:19", + "nodeType": "YulBlock", + "src": "4541:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4543:77:19", + "nodeType": "YulIdentifier", + "src": "4543:77:19" + }, + "nativeSrc": "4543:79:19", + "nodeType": "YulFunctionCall", + "src": "4543:79:19" + }, + "nativeSrc": "4543:79:19", + "nodeType": "YulExpressionStatement", + "src": "4543:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4516:7:19", + "nodeType": "YulIdentifier", + "src": "4516:7:19" + }, + { + "name": "headStart", + "nativeSrc": "4525:9:19", + "nodeType": "YulIdentifier", + "src": "4525:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4512:3:19", + "nodeType": "YulIdentifier", + "src": "4512:3:19" + }, + "nativeSrc": "4512:23:19", + "nodeType": "YulFunctionCall", + "src": "4512:23:19" + }, + { + "kind": "number", + "nativeSrc": "4537:2:19", + "nodeType": "YulLiteral", + "src": "4537:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4508:3:19", + "nodeType": "YulIdentifier", + "src": "4508:3:19" + }, + "nativeSrc": "4508:32:19", + "nodeType": "YulFunctionCall", + "src": "4508:32:19" + }, + "nativeSrc": "4505:119:19", + "nodeType": "YulIf", + "src": "4505:119:19" + }, + { + "nativeSrc": "4634:117:19", + "nodeType": "YulBlock", + "src": "4634:117:19", + "statements": [ + { + "nativeSrc": "4649:15:19", + "nodeType": "YulVariableDeclaration", + "src": "4649:15:19", + "value": { + "kind": "number", + "nativeSrc": "4663:1:19", + "nodeType": "YulLiteral", + "src": "4663:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4653:6:19", + "nodeType": "YulTypedName", + "src": "4653:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4678:63:19", + "nodeType": "YulAssignment", + "src": "4678:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4713:9:19", + "nodeType": "YulIdentifier", + "src": "4713:9:19" + }, + { + "name": "offset", + "nativeSrc": "4724:6:19", + "nodeType": "YulIdentifier", + "src": "4724:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4709:3:19", + "nodeType": "YulIdentifier", + "src": "4709:3:19" + }, + "nativeSrc": "4709:22:19", + "nodeType": "YulFunctionCall", + "src": "4709:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4733:7:19", + "nodeType": "YulIdentifier", + "src": "4733:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4688:20:19", + "nodeType": "YulIdentifier", + "src": "4688:20:19" + }, + "nativeSrc": "4688:53:19", + "nodeType": "YulFunctionCall", + "src": "4688:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4678:6:19", + "nodeType": "YulIdentifier", + "src": "4678:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "4761:118:19", + "nodeType": "YulBlock", + "src": "4761:118:19", + "statements": [ + { + "nativeSrc": "4776:16:19", + "nodeType": "YulVariableDeclaration", + "src": "4776:16:19", + "value": { + "kind": "number", + "nativeSrc": "4790:2:19", + "nodeType": "YulLiteral", + "src": "4790:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4780:6:19", + "nodeType": "YulTypedName", + "src": "4780:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4806:63:19", + "nodeType": "YulAssignment", + "src": "4806:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4841:9:19", + "nodeType": "YulIdentifier", + "src": "4841:9:19" + }, + { + "name": "offset", + "nativeSrc": "4852:6:19", + "nodeType": "YulIdentifier", + "src": "4852:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4837:3:19", + "nodeType": "YulIdentifier", + "src": "4837:3:19" + }, + "nativeSrc": "4837:22:19", + "nodeType": "YulFunctionCall", + "src": "4837:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4861:7:19", + "nodeType": "YulIdentifier", + "src": "4861:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4816:20:19", + "nodeType": "YulIdentifier", + "src": "4816:20:19" + }, + "nativeSrc": "4816:53:19", + "nodeType": "YulFunctionCall", + "src": "4816:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4806:6:19", + "nodeType": "YulIdentifier", + "src": "4806:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "4412:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4457:9:19", + "nodeType": "YulTypedName", + "src": "4457:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4468:7:19", + "nodeType": "YulTypedName", + "src": "4468:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4480:6:19", + "nodeType": "YulTypedName", + "src": "4480:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4488:6:19", + "nodeType": "YulTypedName", + "src": "4488:6:19", + "type": "" + } + ], + "src": "4412:474:19" + }, + { + "body": { + "nativeSrc": "4957:53:19", + "nodeType": "YulBlock", + "src": "4957:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4974:3:19", + "nodeType": "YulIdentifier", + "src": "4974:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4997:5:19", + "nodeType": "YulIdentifier", + "src": "4997:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4979:17:19", + "nodeType": "YulIdentifier", + "src": "4979:17:19" + }, + "nativeSrc": "4979:24:19", + "nodeType": "YulFunctionCall", + "src": "4979:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4967:6:19", + "nodeType": "YulIdentifier", + "src": "4967:6:19" + }, + "nativeSrc": "4967:37:19", + "nodeType": "YulFunctionCall", + "src": "4967:37:19" + }, + "nativeSrc": "4967:37:19", + "nodeType": "YulExpressionStatement", + "src": "4967:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4892:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4945:5:19", + "nodeType": "YulTypedName", + "src": "4945:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4952:3:19", + "nodeType": "YulTypedName", + "src": "4952:3:19", + "type": "" + } + ], + "src": "4892:118:19" + }, + { + "body": { + "nativeSrc": "5114:124:19", + "nodeType": "YulBlock", + "src": "5114:124:19", + "statements": [ + { + "nativeSrc": "5124:26:19", + "nodeType": "YulAssignment", + "src": "5124:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5136:9:19", + "nodeType": "YulIdentifier", + "src": "5136:9:19" + }, + { + "kind": "number", + "nativeSrc": "5147:2:19", + "nodeType": "YulLiteral", + "src": "5147:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5132:3:19", + "nodeType": "YulIdentifier", + "src": "5132:3:19" + }, + "nativeSrc": "5132:18:19", + "nodeType": "YulFunctionCall", + "src": "5132:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5124:4:19", + "nodeType": "YulIdentifier", + "src": "5124:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5204:6:19", + "nodeType": "YulIdentifier", + "src": "5204:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5217:9:19", + "nodeType": "YulIdentifier", + "src": "5217:9:19" + }, + { + "kind": "number", + "nativeSrc": "5228:1:19", + "nodeType": "YulLiteral", + "src": "5228:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5213:3:19", + "nodeType": "YulIdentifier", + "src": "5213:3:19" + }, + "nativeSrc": "5213:17:19", + "nodeType": "YulFunctionCall", + "src": "5213:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5160:43:19", + "nodeType": "YulIdentifier", + "src": "5160:43:19" + }, + "nativeSrc": "5160:71:19", + "nodeType": "YulFunctionCall", + "src": "5160:71:19" + }, + "nativeSrc": "5160:71:19", + "nodeType": "YulExpressionStatement", + "src": "5160:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "5016:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5086:9:19", + "nodeType": "YulTypedName", + "src": "5086:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5098:6:19", + "nodeType": "YulTypedName", + "src": "5098:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5109:4:19", + "nodeType": "YulTypedName", + "src": "5109:4:19", + "type": "" + } + ], + "src": "5016:222:19" + }, + { + "body": { + "nativeSrc": "5344:519:19", + "nodeType": "YulBlock", + "src": "5344:519:19", + "statements": [ + { + "body": { + "nativeSrc": "5390:83:19", + "nodeType": "YulBlock", + "src": "5390:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5392:77:19", + "nodeType": "YulIdentifier", + "src": "5392:77:19" + }, + "nativeSrc": "5392:79:19", + "nodeType": "YulFunctionCall", + "src": "5392:79:19" + }, + "nativeSrc": "5392:79:19", + "nodeType": "YulExpressionStatement", + "src": "5392:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5365:7:19", + "nodeType": "YulIdentifier", + "src": "5365:7:19" + }, + { + "name": "headStart", + "nativeSrc": "5374:9:19", + "nodeType": "YulIdentifier", + "src": "5374:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5361:3:19", + "nodeType": "YulIdentifier", + "src": "5361:3:19" + }, + "nativeSrc": "5361:23:19", + "nodeType": "YulFunctionCall", + "src": "5361:23:19" + }, + { + "kind": "number", + "nativeSrc": "5386:2:19", + "nodeType": "YulLiteral", + "src": "5386:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5357:3:19", + "nodeType": "YulIdentifier", + "src": "5357:3:19" + }, + "nativeSrc": "5357:32:19", + "nodeType": "YulFunctionCall", + "src": "5357:32:19" + }, + "nativeSrc": "5354:119:19", + "nodeType": "YulIf", + "src": "5354:119:19" + }, + { + "nativeSrc": "5483:117:19", + "nodeType": "YulBlock", + "src": "5483:117:19", + "statements": [ + { + "nativeSrc": "5498:15:19", + "nodeType": "YulVariableDeclaration", + "src": "5498:15:19", + "value": { + "kind": "number", + "nativeSrc": "5512:1:19", + "nodeType": "YulLiteral", + "src": "5512:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5502:6:19", + "nodeType": "YulTypedName", + "src": "5502:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5527:63:19", + "nodeType": "YulAssignment", + "src": "5527:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5562:9:19", + "nodeType": "YulIdentifier", + "src": "5562:9:19" + }, + { + "name": "offset", + "nativeSrc": "5573:6:19", + "nodeType": "YulIdentifier", + "src": "5573:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5558:3:19", + "nodeType": "YulIdentifier", + "src": "5558:3:19" + }, + "nativeSrc": "5558:22:19", + "nodeType": "YulFunctionCall", + "src": "5558:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5582:7:19", + "nodeType": "YulIdentifier", + "src": "5582:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5537:20:19", + "nodeType": "YulIdentifier", + "src": "5537:20:19" + }, + "nativeSrc": "5537:53:19", + "nodeType": "YulFunctionCall", + "src": "5537:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5527:6:19", + "nodeType": "YulIdentifier", + "src": "5527:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5610:118:19", + "nodeType": "YulBlock", + "src": "5610:118:19", + "statements": [ + { + "nativeSrc": "5625:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5625:16:19", + "value": { + "kind": "number", + "nativeSrc": "5639:2:19", + "nodeType": "YulLiteral", + "src": "5639:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5629:6:19", + "nodeType": "YulTypedName", + "src": "5629:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5655:63:19", + "nodeType": "YulAssignment", + "src": "5655:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5690:9:19", + "nodeType": "YulIdentifier", + "src": "5690:9:19" + }, + { + "name": "offset", + "nativeSrc": "5701:6:19", + "nodeType": "YulIdentifier", + "src": "5701:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5686:3:19", + "nodeType": "YulIdentifier", + "src": "5686:3:19" + }, + "nativeSrc": "5686:22:19", + "nodeType": "YulFunctionCall", + "src": "5686:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5710:7:19", + "nodeType": "YulIdentifier", + "src": "5710:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5665:20:19", + "nodeType": "YulIdentifier", + "src": "5665:20:19" + }, + "nativeSrc": "5665:53:19", + "nodeType": "YulFunctionCall", + "src": "5665:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5655:6:19", + "nodeType": "YulIdentifier", + "src": "5655:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5738:118:19", + "nodeType": "YulBlock", + "src": "5738:118:19", + "statements": [ + { + "nativeSrc": "5753:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5753:16:19", + "value": { + "kind": "number", + "nativeSrc": "5767:2:19", + "nodeType": "YulLiteral", + "src": "5767:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5757:6:19", + "nodeType": "YulTypedName", + "src": "5757:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5783:63:19", + "nodeType": "YulAssignment", + "src": "5783:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5818:9:19", + "nodeType": "YulIdentifier", + "src": "5818:9:19" + }, + { + "name": "offset", + "nativeSrc": "5829:6:19", + "nodeType": "YulIdentifier", + "src": "5829:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5814:3:19", + "nodeType": "YulIdentifier", + "src": "5814:3:19" + }, + "nativeSrc": "5814:22:19", + "nodeType": "YulFunctionCall", + "src": "5814:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5838:7:19", + "nodeType": "YulIdentifier", + "src": "5838:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5793:20:19", + "nodeType": "YulIdentifier", + "src": "5793:20:19" + }, + "nativeSrc": "5793:53:19", + "nodeType": "YulFunctionCall", + "src": "5793:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5783:6:19", + "nodeType": "YulIdentifier", + "src": "5783:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "5244:619:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5298:9:19", + "nodeType": "YulTypedName", + "src": "5298:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5309:7:19", + "nodeType": "YulTypedName", + "src": "5309:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5321:6:19", + "nodeType": "YulTypedName", + "src": "5321:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5329:6:19", + "nodeType": "YulTypedName", + "src": "5329:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5337:6:19", + "nodeType": "YulTypedName", + "src": "5337:6:19", + "type": "" + } + ], + "src": "5244:619:19" + }, + { + "body": { + "nativeSrc": "5935:263:19", + "nodeType": "YulBlock", + "src": "5935:263:19", + "statements": [ + { + "body": { + "nativeSrc": "5981:83:19", + "nodeType": "YulBlock", + "src": "5981:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5983:77:19", + "nodeType": "YulIdentifier", + "src": "5983:77:19" + }, + "nativeSrc": "5983:79:19", + "nodeType": "YulFunctionCall", + "src": "5983:79:19" + }, + "nativeSrc": "5983:79:19", + "nodeType": "YulExpressionStatement", + "src": "5983:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5956:7:19", + "nodeType": "YulIdentifier", + "src": "5956:7:19" + }, + { + "name": "headStart", + "nativeSrc": "5965:9:19", + "nodeType": "YulIdentifier", + "src": "5965:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5952:3:19", + "nodeType": "YulIdentifier", + "src": "5952:3:19" + }, + "nativeSrc": "5952:23:19", + "nodeType": "YulFunctionCall", + "src": "5952:23:19" + }, + { + "kind": "number", + "nativeSrc": "5977:2:19", + "nodeType": "YulLiteral", + "src": "5977:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5948:3:19", + "nodeType": "YulIdentifier", + "src": "5948:3:19" + }, + "nativeSrc": "5948:32:19", + "nodeType": "YulFunctionCall", + "src": "5948:32:19" + }, + "nativeSrc": "5945:119:19", + "nodeType": "YulIf", + "src": "5945:119:19" + }, + { + "nativeSrc": "6074:117:19", + "nodeType": "YulBlock", + "src": "6074:117:19", + "statements": [ + { + "nativeSrc": "6089:15:19", + "nodeType": "YulVariableDeclaration", + "src": "6089:15:19", + "value": { + "kind": "number", + "nativeSrc": "6103:1:19", + "nodeType": "YulLiteral", + "src": "6103:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6093:6:19", + "nodeType": "YulTypedName", + "src": "6093:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "6118:63:19", + "nodeType": "YulAssignment", + "src": "6118:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6153:9:19", + "nodeType": "YulIdentifier", + "src": "6153:9:19" + }, + { + "name": "offset", + "nativeSrc": "6164:6:19", + "nodeType": "YulIdentifier", + "src": "6164:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6149:3:19", + "nodeType": "YulIdentifier", + "src": "6149:3:19" + }, + "nativeSrc": "6149:22:19", + "nodeType": "YulFunctionCall", + "src": "6149:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "6173:7:19", + "nodeType": "YulIdentifier", + "src": "6173:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6128:20:19", + "nodeType": "YulIdentifier", + "src": "6128:20:19" + }, + "nativeSrc": "6128:53:19", + "nodeType": "YulFunctionCall", + "src": "6128:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6118:6:19", + "nodeType": "YulIdentifier", + "src": "6118:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "5869:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5905:9:19", + "nodeType": "YulTypedName", + "src": "5905:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5916:7:19", + "nodeType": "YulTypedName", + "src": "5916:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5928:6:19", + "nodeType": "YulTypedName", + "src": "5928:6:19", + "type": "" + } + ], + "src": "5869:329:19" + }, + { + "body": { + "nativeSrc": "6293:28:19", + "nodeType": "YulBlock", + "src": "6293:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6310:1:19", + "nodeType": "YulLiteral", + "src": "6310:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6313:1:19", + "nodeType": "YulLiteral", + "src": "6313:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6303:6:19", + "nodeType": "YulIdentifier", + "src": "6303:6:19" + }, + "nativeSrc": "6303:12:19", + "nodeType": "YulFunctionCall", + "src": "6303:12:19" + }, + "nativeSrc": "6303:12:19", + "nodeType": "YulExpressionStatement", + "src": "6303:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "6204:117:19", + "nodeType": "YulFunctionDefinition", + "src": "6204:117:19" + }, + { + "body": { + "nativeSrc": "6416:28:19", + "nodeType": "YulBlock", + "src": "6416:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6433:1:19", + "nodeType": "YulLiteral", + "src": "6433:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6436:1:19", + "nodeType": "YulLiteral", + "src": "6436:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6426:6:19", + "nodeType": "YulIdentifier", + "src": "6426:6:19" + }, + "nativeSrc": "6426:12:19", + "nodeType": "YulFunctionCall", + "src": "6426:12:19" + }, + "nativeSrc": "6426:12:19", + "nodeType": "YulExpressionStatement", + "src": "6426:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "6327:117:19", + "nodeType": "YulFunctionDefinition", + "src": "6327:117:19" + }, + { + "body": { + "nativeSrc": "6478:152:19", + "nodeType": "YulBlock", + "src": "6478:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6495:1:19", + "nodeType": "YulLiteral", + "src": "6495:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6498:77:19", + "nodeType": "YulLiteral", + "src": "6498:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6488:6:19", + "nodeType": "YulIdentifier", + "src": "6488:6:19" + }, + "nativeSrc": "6488:88:19", + "nodeType": "YulFunctionCall", + "src": "6488:88:19" + }, + "nativeSrc": "6488:88:19", + "nodeType": "YulExpressionStatement", + "src": "6488:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6592:1:19", + "nodeType": "YulLiteral", + "src": "6592:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6595:4:19", + "nodeType": "YulLiteral", + "src": "6595:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6585:6:19", + "nodeType": "YulIdentifier", + "src": "6585:6:19" + }, + "nativeSrc": "6585:15:19", + "nodeType": "YulFunctionCall", + "src": "6585:15:19" + }, + "nativeSrc": "6585:15:19", + "nodeType": "YulExpressionStatement", + "src": "6585:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6616:1:19", + "nodeType": "YulLiteral", + "src": "6616:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6619:4:19", + "nodeType": "YulLiteral", + "src": "6619:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6609:6:19", + "nodeType": "YulIdentifier", + "src": "6609:6:19" + }, + "nativeSrc": "6609:15:19", + "nodeType": "YulFunctionCall", + "src": "6609:15:19" + }, + "nativeSrc": "6609:15:19", + "nodeType": "YulExpressionStatement", + "src": "6609:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6450:180:19", + "nodeType": "YulFunctionDefinition", + "src": "6450:180:19" + }, + { + "body": { + "nativeSrc": "6679:238:19", + "nodeType": "YulBlock", + "src": "6679:238:19", + "statements": [ + { + "nativeSrc": "6689:58:19", + "nodeType": "YulVariableDeclaration", + "src": "6689:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6711:6:19", + "nodeType": "YulIdentifier", + "src": "6711:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6741:4:19", + "nodeType": "YulIdentifier", + "src": "6741:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6719:21:19", + "nodeType": "YulIdentifier", + "src": "6719:21:19" + }, + "nativeSrc": "6719:27:19", + "nodeType": "YulFunctionCall", + "src": "6719:27:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6707:3:19", + "nodeType": "YulIdentifier", + "src": "6707:3:19" + }, + "nativeSrc": "6707:40:19", + "nodeType": "YulFunctionCall", + "src": "6707:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6693:10:19", + "nodeType": "YulTypedName", + "src": "6693:10:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6858:22:19", + "nodeType": "YulBlock", + "src": "6858:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6860:16:19", + "nodeType": "YulIdentifier", + "src": "6860:16:19" + }, + "nativeSrc": "6860:18:19", + "nodeType": "YulFunctionCall", + "src": "6860:18:19" + }, + "nativeSrc": "6860:18:19", + "nodeType": "YulExpressionStatement", + "src": "6860:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6801:10:19", + "nodeType": "YulIdentifier", + "src": "6801:10:19" + }, + { + "kind": "number", + "nativeSrc": "6813:18:19", + "nodeType": "YulLiteral", + "src": "6813:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6798:2:19", + "nodeType": "YulIdentifier", + "src": "6798:2:19" + }, + "nativeSrc": "6798:34:19", + "nodeType": "YulFunctionCall", + "src": "6798:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6837:10:19", + "nodeType": "YulIdentifier", + "src": "6837:10:19" + }, + { + "name": "memPtr", + "nativeSrc": "6849:6:19", + "nodeType": "YulIdentifier", + "src": "6849:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6834:2:19", + "nodeType": "YulIdentifier", + "src": "6834:2:19" + }, + "nativeSrc": "6834:22:19", + "nodeType": "YulFunctionCall", + "src": "6834:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6795:2:19", + "nodeType": "YulIdentifier", + "src": "6795:2:19" + }, + "nativeSrc": "6795:62:19", + "nodeType": "YulFunctionCall", + "src": "6795:62:19" + }, + "nativeSrc": "6792:88:19", + "nodeType": "YulIf", + "src": "6792:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6896:2:19", + "nodeType": "YulLiteral", + "src": "6896:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6900:10:19", + "nodeType": "YulIdentifier", + "src": "6900:10:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6889:6:19", + "nodeType": "YulIdentifier", + "src": "6889:6:19" + }, + "nativeSrc": "6889:22:19", + "nodeType": "YulFunctionCall", + "src": "6889:22:19" + }, + "nativeSrc": "6889:22:19", + "nodeType": "YulExpressionStatement", + "src": "6889:22:19" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6636:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6665:6:19", + "nodeType": "YulTypedName", + "src": "6665:6:19", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6673:4:19", + "nodeType": "YulTypedName", + "src": "6673:4:19", + "type": "" + } + ], + "src": "6636:281:19" + }, + { + "body": { + "nativeSrc": "6964:88:19", + "nodeType": "YulBlock", + "src": "6964:88:19", + "statements": [ + { + "nativeSrc": "6974:30:19", + "nodeType": "YulAssignment", + "src": "6974:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6984:18:19", + "nodeType": "YulIdentifier", + "src": "6984:18:19" + }, + "nativeSrc": "6984:20:19", + "nodeType": "YulFunctionCall", + "src": "6984:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6974:6:19", + "nodeType": "YulIdentifier", + "src": "6974:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7033:6:19", + "nodeType": "YulIdentifier", + "src": "7033:6:19" + }, + { + "name": "size", + "nativeSrc": "7041:4:19", + "nodeType": "YulIdentifier", + "src": "7041:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "7013:19:19", + "nodeType": "YulIdentifier", + "src": "7013:19:19" + }, + "nativeSrc": "7013:33:19", + "nodeType": "YulFunctionCall", + "src": "7013:33:19" + }, + "nativeSrc": "7013:33:19", + "nodeType": "YulExpressionStatement", + "src": "7013:33:19" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6923:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6948:4:19", + "nodeType": "YulTypedName", + "src": "6948:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6957:6:19", + "nodeType": "YulTypedName", + "src": "6957:6:19", + "type": "" + } + ], + "src": "6923:129:19" + }, + { + "body": { + "nativeSrc": "7125:241:19", + "nodeType": "YulBlock", + "src": "7125:241:19", + "statements": [ + { + "body": { + "nativeSrc": "7230:22:19", + "nodeType": "YulBlock", + "src": "7230:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7232:16:19", + "nodeType": "YulIdentifier", + "src": "7232:16:19" + }, + "nativeSrc": "7232:18:19", + "nodeType": "YulFunctionCall", + "src": "7232:18:19" + }, + "nativeSrc": "7232:18:19", + "nodeType": "YulExpressionStatement", + "src": "7232:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7202:6:19", + "nodeType": "YulIdentifier", + "src": "7202:6:19" + }, + { + "kind": "number", + "nativeSrc": "7210:18:19", + "nodeType": "YulLiteral", + "src": "7210:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7199:2:19", + "nodeType": "YulIdentifier", + "src": "7199:2:19" + }, + "nativeSrc": "7199:30:19", + "nodeType": "YulFunctionCall", + "src": "7199:30:19" + }, + "nativeSrc": "7196:56:19", + "nodeType": "YulIf", + "src": "7196:56:19" + }, + { + "nativeSrc": "7262:37:19", + "nodeType": "YulAssignment", + "src": "7262:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7292:6:19", + "nodeType": "YulIdentifier", + "src": "7292:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7270:21:19", + "nodeType": "YulIdentifier", + "src": "7270:21:19" + }, + "nativeSrc": "7270:29:19", + "nodeType": "YulFunctionCall", + "src": "7270:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7262:4:19", + "nodeType": "YulIdentifier", + "src": "7262:4:19" + } + ] + }, + { + "nativeSrc": "7336:23:19", + "nodeType": "YulAssignment", + "src": "7336:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "7348:4:19", + "nodeType": "YulIdentifier", + "src": "7348:4:19" + }, + { + "kind": "number", + "nativeSrc": "7354:4:19", + "nodeType": "YulLiteral", + "src": "7354:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7344:3:19", + "nodeType": "YulIdentifier", + "src": "7344:3:19" + }, + "nativeSrc": "7344:15:19", + "nodeType": "YulFunctionCall", + "src": "7344:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7336:4:19", + "nodeType": "YulIdentifier", + "src": "7336:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7058:308:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "7109:6:19", + "nodeType": "YulTypedName", + "src": "7109:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "7120:4:19", + "nodeType": "YulTypedName", + "src": "7120:4:19", + "type": "" + } + ], + "src": "7058:308:19" + }, + { + "body": { + "nativeSrc": "7436:84:19", + "nodeType": "YulBlock", + "src": "7436:84:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7460:3:19", + "nodeType": "YulIdentifier", + "src": "7460:3:19" + }, + { + "name": "src", + "nativeSrc": "7465:3:19", + "nodeType": "YulIdentifier", + "src": "7465:3:19" + }, + { + "name": "length", + "nativeSrc": "7470:6:19", + "nodeType": "YulIdentifier", + "src": "7470:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "7447:12:19", + "nodeType": "YulIdentifier", + "src": "7447:12:19" + }, + "nativeSrc": "7447:30:19", + "nodeType": "YulFunctionCall", + "src": "7447:30:19" + }, + "nativeSrc": "7447:30:19", + "nodeType": "YulExpressionStatement", + "src": "7447:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7497:3:19", + "nodeType": "YulIdentifier", + "src": "7497:3:19" + }, + { + "name": "length", + "nativeSrc": "7502:6:19", + "nodeType": "YulIdentifier", + "src": "7502:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7493:3:19", + "nodeType": "YulIdentifier", + "src": "7493:3:19" + }, + "nativeSrc": "7493:16:19", + "nodeType": "YulFunctionCall", + "src": "7493:16:19" + }, + { + "kind": "number", + "nativeSrc": "7511:1:19", + "nodeType": "YulLiteral", + "src": "7511:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7486:6:19", + "nodeType": "YulIdentifier", + "src": "7486:6:19" + }, + "nativeSrc": "7486:27:19", + "nodeType": "YulFunctionCall", + "src": "7486:27:19" + }, + "nativeSrc": "7486:27:19", + "nodeType": "YulExpressionStatement", + "src": "7486:27:19" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7372:148:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7418:3:19", + "nodeType": "YulTypedName", + "src": "7418:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "7423:3:19", + "nodeType": "YulTypedName", + "src": "7423:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7428:6:19", + "nodeType": "YulTypedName", + "src": "7428:6:19", + "type": "" + } + ], + "src": "7372:148:19" + }, + { + "body": { + "nativeSrc": "7610:341:19", + "nodeType": "YulBlock", + "src": "7610:341:19", + "statements": [ + { + "nativeSrc": "7620:75:19", + "nodeType": "YulAssignment", + "src": "7620:75:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7687:6:19", + "nodeType": "YulIdentifier", + "src": "7687:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7645:41:19", + "nodeType": "YulIdentifier", + "src": "7645:41:19" + }, + "nativeSrc": "7645:49:19", + "nodeType": "YulFunctionCall", + "src": "7645:49:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7629:15:19", + "nodeType": "YulIdentifier", + "src": "7629:15:19" + }, + "nativeSrc": "7629:66:19", + "nodeType": "YulFunctionCall", + "src": "7629:66:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7620:5:19", + "nodeType": "YulIdentifier", + "src": "7620:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7711:5:19", + "nodeType": "YulIdentifier", + "src": "7711:5:19" + }, + { + "name": "length", + "nativeSrc": "7718:6:19", + "nodeType": "YulIdentifier", + "src": "7718:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7704:6:19", + "nodeType": "YulIdentifier", + "src": "7704:6:19" + }, + "nativeSrc": "7704:21:19", + "nodeType": "YulFunctionCall", + "src": "7704:21:19" + }, + "nativeSrc": "7704:21:19", + "nodeType": "YulExpressionStatement", + "src": "7704:21:19" + }, + { + "nativeSrc": "7734:27:19", + "nodeType": "YulVariableDeclaration", + "src": "7734:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7749:5:19", + "nodeType": "YulIdentifier", + "src": "7749:5:19" + }, + { + "kind": "number", + "nativeSrc": "7756:4:19", + "nodeType": "YulLiteral", + "src": "7756:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7745:3:19", + "nodeType": "YulIdentifier", + "src": "7745:3:19" + }, + "nativeSrc": "7745:16:19", + "nodeType": "YulFunctionCall", + "src": "7745:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7738:3:19", + "nodeType": "YulTypedName", + "src": "7738:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7799:83:19", + "nodeType": "YulBlock", + "src": "7799:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7801:77:19", + "nodeType": "YulIdentifier", + "src": "7801:77:19" + }, + "nativeSrc": "7801:79:19", + "nodeType": "YulFunctionCall", + "src": "7801:79:19" + }, + "nativeSrc": "7801:79:19", + "nodeType": "YulExpressionStatement", + "src": "7801:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7780:3:19", + "nodeType": "YulIdentifier", + "src": "7780:3:19" + }, + { + "name": "length", + "nativeSrc": "7785:6:19", + "nodeType": "YulIdentifier", + "src": "7785:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7776:3:19", + "nodeType": "YulIdentifier", + "src": "7776:3:19" + }, + "nativeSrc": "7776:16:19", + "nodeType": "YulFunctionCall", + "src": "7776:16:19" + }, + { + "name": "end", + "nativeSrc": "7794:3:19", + "nodeType": "YulIdentifier", + "src": "7794:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7773:2:19", + "nodeType": "YulIdentifier", + "src": "7773:2:19" + }, + "nativeSrc": "7773:25:19", + "nodeType": "YulFunctionCall", + "src": "7773:25:19" + }, + "nativeSrc": "7770:112:19", + "nodeType": "YulIf", + "src": "7770:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7928:3:19", + "nodeType": "YulIdentifier", + "src": "7928:3:19" + }, + { + "name": "dst", + "nativeSrc": "7933:3:19", + "nodeType": "YulIdentifier", + "src": "7933:3:19" + }, + { + "name": "length", + "nativeSrc": "7938:6:19", + "nodeType": "YulIdentifier", + "src": "7938:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7891:36:19", + "nodeType": "YulIdentifier", + "src": "7891:36:19" + }, + "nativeSrc": "7891:54:19", + "nodeType": "YulFunctionCall", + "src": "7891:54:19" + }, + "nativeSrc": "7891:54:19", + "nodeType": "YulExpressionStatement", + "src": "7891:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "7526:425:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7583:3:19", + "nodeType": "YulTypedName", + "src": "7583:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7588:6:19", + "nodeType": "YulTypedName", + "src": "7588:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7596:3:19", + "nodeType": "YulTypedName", + "src": "7596:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7604:5:19", + "nodeType": "YulTypedName", + "src": "7604:5:19", + "type": "" + } + ], + "src": "7526:425:19" + }, + { + "body": { + "nativeSrc": "8033:278:19", + "nodeType": "YulBlock", + "src": "8033:278:19", + "statements": [ + { + "body": { + "nativeSrc": "8082:83:19", + "nodeType": "YulBlock", + "src": "8082:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "8084:77:19", + "nodeType": "YulIdentifier", + "src": "8084:77:19" + }, + "nativeSrc": "8084:79:19", + "nodeType": "YulFunctionCall", + "src": "8084:79:19" + }, + "nativeSrc": "8084:79:19", + "nodeType": "YulExpressionStatement", + "src": "8084:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8061:6:19", + "nodeType": "YulIdentifier", + "src": "8061:6:19" + }, + { + "kind": "number", + "nativeSrc": "8069:4:19", + "nodeType": "YulLiteral", + "src": "8069:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8057:3:19", + "nodeType": "YulIdentifier", + "src": "8057:3:19" + }, + "nativeSrc": "8057:17:19", + "nodeType": "YulFunctionCall", + "src": "8057:17:19" + }, + { + "name": "end", + "nativeSrc": "8076:3:19", + "nodeType": "YulIdentifier", + "src": "8076:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8053:3:19", + "nodeType": "YulIdentifier", + "src": "8053:3:19" + }, + "nativeSrc": "8053:27:19", + "nodeType": "YulFunctionCall", + "src": "8053:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8046:6:19", + "nodeType": "YulIdentifier", + "src": "8046:6:19" + }, + "nativeSrc": "8046:35:19", + "nodeType": "YulFunctionCall", + "src": "8046:35:19" + }, + "nativeSrc": "8043:122:19", + "nodeType": "YulIf", + "src": "8043:122:19" + }, + { + "nativeSrc": "8174:34:19", + "nodeType": "YulVariableDeclaration", + "src": "8174:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8201:6:19", + "nodeType": "YulIdentifier", + "src": "8201:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8188:12:19", + "nodeType": "YulIdentifier", + "src": "8188:12:19" + }, + "nativeSrc": "8188:20:19", + "nodeType": "YulFunctionCall", + "src": "8188:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8178:6:19", + "nodeType": "YulTypedName", + "src": "8178:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "8217:88:19", + "nodeType": "YulAssignment", + "src": "8217:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8278:6:19", + "nodeType": "YulIdentifier", + "src": "8278:6:19" + }, + { + "kind": "number", + "nativeSrc": "8286:4:19", + "nodeType": "YulLiteral", + "src": "8286:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8274:3:19", + "nodeType": "YulIdentifier", + "src": "8274:3:19" + }, + "nativeSrc": "8274:17:19", + "nodeType": "YulFunctionCall", + "src": "8274:17:19" + }, + { + "name": "length", + "nativeSrc": "8293:6:19", + "nodeType": "YulIdentifier", + "src": "8293:6:19" + }, + { + "name": "end", + "nativeSrc": "8301:3:19", + "nodeType": "YulIdentifier", + "src": "8301:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "8226:47:19", + "nodeType": "YulIdentifier", + "src": "8226:47:19" + }, + "nativeSrc": "8226:79:19", + "nodeType": "YulFunctionCall", + "src": "8226:79:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8217:5:19", + "nodeType": "YulIdentifier", + "src": "8217:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "7971:340:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8011:6:19", + "nodeType": "YulTypedName", + "src": "8011:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8019:3:19", + "nodeType": "YulTypedName", + "src": "8019:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8027:5:19", + "nodeType": "YulTypedName", + "src": "8027:5:19", + "type": "" + } + ], + "src": "7971:340:19" + }, + { + "body": { + "nativeSrc": "8393:433:19", + "nodeType": "YulBlock", + "src": "8393:433:19", + "statements": [ + { + "body": { + "nativeSrc": "8439:83:19", + "nodeType": "YulBlock", + "src": "8439:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8441:77:19", + "nodeType": "YulIdentifier", + "src": "8441:77:19" + }, + "nativeSrc": "8441:79:19", + "nodeType": "YulFunctionCall", + "src": "8441:79:19" + }, + "nativeSrc": "8441:79:19", + "nodeType": "YulExpressionStatement", + "src": "8441:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8414:7:19", + "nodeType": "YulIdentifier", + "src": "8414:7:19" + }, + { + "name": "headStart", + "nativeSrc": "8423:9:19", + "nodeType": "YulIdentifier", + "src": "8423:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8410:3:19", + "nodeType": "YulIdentifier", + "src": "8410:3:19" + }, + "nativeSrc": "8410:23:19", + "nodeType": "YulFunctionCall", + "src": "8410:23:19" + }, + { + "kind": "number", + "nativeSrc": "8435:2:19", + "nodeType": "YulLiteral", + "src": "8435:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8406:3:19", + "nodeType": "YulIdentifier", + "src": "8406:3:19" + }, + "nativeSrc": "8406:32:19", + "nodeType": "YulFunctionCall", + "src": "8406:32:19" + }, + "nativeSrc": "8403:119:19", + "nodeType": "YulIf", + "src": "8403:119:19" + }, + { + "nativeSrc": "8532:287:19", + "nodeType": "YulBlock", + "src": "8532:287:19", + "statements": [ + { + "nativeSrc": "8547:45:19", + "nodeType": "YulVariableDeclaration", + "src": "8547:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8578:9:19", + "nodeType": "YulIdentifier", + "src": "8578:9:19" + }, + { + "kind": "number", + "nativeSrc": "8589:1:19", + "nodeType": "YulLiteral", + "src": "8589:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8574:3:19", + "nodeType": "YulIdentifier", + "src": "8574:3:19" + }, + "nativeSrc": "8574:17:19", + "nodeType": "YulFunctionCall", + "src": "8574:17:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8561:12:19", + "nodeType": "YulIdentifier", + "src": "8561:12:19" + }, + "nativeSrc": "8561:31:19", + "nodeType": "YulFunctionCall", + "src": "8561:31:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8551:6:19", + "nodeType": "YulTypedName", + "src": "8551:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8639:83:19", + "nodeType": "YulBlock", + "src": "8639:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "8641:77:19", + "nodeType": "YulIdentifier", + "src": "8641:77:19" + }, + "nativeSrc": "8641:79:19", + "nodeType": "YulFunctionCall", + "src": "8641:79:19" + }, + "nativeSrc": "8641:79:19", + "nodeType": "YulExpressionStatement", + "src": "8641:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8611:6:19", + "nodeType": "YulIdentifier", + "src": "8611:6:19" + }, + { + "kind": "number", + "nativeSrc": "8619:18:19", + "nodeType": "YulLiteral", + "src": "8619:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8608:2:19", + "nodeType": "YulIdentifier", + "src": "8608:2:19" + }, + "nativeSrc": "8608:30:19", + "nodeType": "YulFunctionCall", + "src": "8608:30:19" + }, + "nativeSrc": "8605:117:19", + "nodeType": "YulIf", + "src": "8605:117:19" + }, + { + "nativeSrc": "8736:73:19", + "nodeType": "YulAssignment", + "src": "8736:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8781:9:19", + "nodeType": "YulIdentifier", + "src": "8781:9:19" + }, + { + "name": "offset", + "nativeSrc": "8792:6:19", + "nodeType": "YulIdentifier", + "src": "8792:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8777:3:19", + "nodeType": "YulIdentifier", + "src": "8777:3:19" + }, + "nativeSrc": "8777:22:19", + "nodeType": "YulFunctionCall", + "src": "8777:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "8801:7:19", + "nodeType": "YulIdentifier", + "src": "8801:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "8746:30:19", + "nodeType": "YulIdentifier", + "src": "8746:30:19" + }, + "nativeSrc": "8746:63:19", + "nodeType": "YulFunctionCall", + "src": "8746:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8736:6:19", + "nodeType": "YulIdentifier", + "src": "8736:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "8317:509:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8363:9:19", + "nodeType": "YulTypedName", + "src": "8363:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8374:7:19", + "nodeType": "YulTypedName", + "src": "8374:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8386:6:19", + "nodeType": "YulTypedName", + "src": "8386:6:19", + "type": "" + } + ], + "src": "8317:509:19" + }, + { + "body": { + "nativeSrc": "8872:76:19", + "nodeType": "YulBlock", + "src": "8872:76:19", + "statements": [ + { + "body": { + "nativeSrc": "8926:16:19", + "nodeType": "YulBlock", + "src": "8926:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8935:1:19", + "nodeType": "YulLiteral", + "src": "8935:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8938:1:19", + "nodeType": "YulLiteral", + "src": "8938:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8928:6:19", + "nodeType": "YulIdentifier", + "src": "8928:6:19" + }, + "nativeSrc": "8928:12:19", + "nodeType": "YulFunctionCall", + "src": "8928:12:19" + }, + "nativeSrc": "8928:12:19", + "nodeType": "YulExpressionStatement", + "src": "8928:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8895:5:19", + "nodeType": "YulIdentifier", + "src": "8895:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8917:5:19", + "nodeType": "YulIdentifier", + "src": "8917:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "8902:14:19", + "nodeType": "YulIdentifier", + "src": "8902:14:19" + }, + "nativeSrc": "8902:21:19", + "nodeType": "YulFunctionCall", + "src": "8902:21:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8892:2:19", + "nodeType": "YulIdentifier", + "src": "8892:2:19" + }, + "nativeSrc": "8892:32:19", + "nodeType": "YulFunctionCall", + "src": "8892:32:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8885:6:19", + "nodeType": "YulIdentifier", + "src": "8885:6:19" + }, + "nativeSrc": "8885:40:19", + "nodeType": "YulFunctionCall", + "src": "8885:40:19" + }, + "nativeSrc": "8882:60:19", + "nodeType": "YulIf", + "src": "8882:60:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "8832:116:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8865:5:19", + "nodeType": "YulTypedName", + "src": "8865:5:19", + "type": "" + } + ], + "src": "8832:116:19" + }, + { + "body": { + "nativeSrc": "9003:84:19", + "nodeType": "YulBlock", + "src": "9003:84:19", + "statements": [ + { + "nativeSrc": "9013:29:19", + "nodeType": "YulAssignment", + "src": "9013:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9035:6:19", + "nodeType": "YulIdentifier", + "src": "9035:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9022:12:19", + "nodeType": "YulIdentifier", + "src": "9022:12:19" + }, + "nativeSrc": "9022:20:19", + "nodeType": "YulFunctionCall", + "src": "9022:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9013:5:19", + "nodeType": "YulIdentifier", + "src": "9013:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9075:5:19", + "nodeType": "YulIdentifier", + "src": "9075:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "9051:23:19", + "nodeType": "YulIdentifier", + "src": "9051:23:19" + }, + "nativeSrc": "9051:30:19", + "nodeType": "YulFunctionCall", + "src": "9051:30:19" + }, + "nativeSrc": "9051:30:19", + "nodeType": "YulExpressionStatement", + "src": "9051:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "8954:133:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8981:6:19", + "nodeType": "YulTypedName", + "src": "8981:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8989:3:19", + "nodeType": "YulTypedName", + "src": "8989:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "8997:5:19", + "nodeType": "YulTypedName", + "src": "8997:5:19", + "type": "" + } + ], + "src": "8954:133:19" + }, + { + "body": { + "nativeSrc": "9173:388:19", + "nodeType": "YulBlock", + "src": "9173:388:19", + "statements": [ + { + "body": { + "nativeSrc": "9219:83:19", + "nodeType": "YulBlock", + "src": "9219:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9221:77:19", + "nodeType": "YulIdentifier", + "src": "9221:77:19" + }, + "nativeSrc": "9221:79:19", + "nodeType": "YulFunctionCall", + "src": "9221:79:19" + }, + "nativeSrc": "9221:79:19", + "nodeType": "YulExpressionStatement", + "src": "9221:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9194:7:19", + "nodeType": "YulIdentifier", + "src": "9194:7:19" + }, + { + "name": "headStart", + "nativeSrc": "9203:9:19", + "nodeType": "YulIdentifier", + "src": "9203:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9190:3:19", + "nodeType": "YulIdentifier", + "src": "9190:3:19" + }, + "nativeSrc": "9190:23:19", + "nodeType": "YulFunctionCall", + "src": "9190:23:19" + }, + { + "kind": "number", + "nativeSrc": "9215:2:19", + "nodeType": "YulLiteral", + "src": "9215:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9186:3:19", + "nodeType": "YulIdentifier", + "src": "9186:3:19" + }, + "nativeSrc": "9186:32:19", + "nodeType": "YulFunctionCall", + "src": "9186:32:19" + }, + "nativeSrc": "9183:119:19", + "nodeType": "YulIf", + "src": "9183:119:19" + }, + { + "nativeSrc": "9312:117:19", + "nodeType": "YulBlock", + "src": "9312:117:19", + "statements": [ + { + "nativeSrc": "9327:15:19", + "nodeType": "YulVariableDeclaration", + "src": "9327:15:19", + "value": { + "kind": "number", + "nativeSrc": "9341:1:19", + "nodeType": "YulLiteral", + "src": "9341:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9331:6:19", + "nodeType": "YulTypedName", + "src": "9331:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9356:63:19", + "nodeType": "YulAssignment", + "src": "9356:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9391:9:19", + "nodeType": "YulIdentifier", + "src": "9391:9:19" + }, + { + "name": "offset", + "nativeSrc": "9402:6:19", + "nodeType": "YulIdentifier", + "src": "9402:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9387:3:19", + "nodeType": "YulIdentifier", + "src": "9387:3:19" + }, + "nativeSrc": "9387:22:19", + "nodeType": "YulFunctionCall", + "src": "9387:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9411:7:19", + "nodeType": "YulIdentifier", + "src": "9411:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9366:20:19", + "nodeType": "YulIdentifier", + "src": "9366:20:19" + }, + "nativeSrc": "9366:53:19", + "nodeType": "YulFunctionCall", + "src": "9366:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9356:6:19", + "nodeType": "YulIdentifier", + "src": "9356:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "9439:115:19", + "nodeType": "YulBlock", + "src": "9439:115:19", + "statements": [ + { + "nativeSrc": "9454:16:19", + "nodeType": "YulVariableDeclaration", + "src": "9454:16:19", + "value": { + "kind": "number", + "nativeSrc": "9468:2:19", + "nodeType": "YulLiteral", + "src": "9468:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9458:6:19", + "nodeType": "YulTypedName", + "src": "9458:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9484:60:19", + "nodeType": "YulAssignment", + "src": "9484:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9516:9:19", + "nodeType": "YulIdentifier", + "src": "9516:9:19" + }, + { + "name": "offset", + "nativeSrc": "9527:6:19", + "nodeType": "YulIdentifier", + "src": "9527:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9512:3:19", + "nodeType": "YulIdentifier", + "src": "9512:3:19" + }, + "nativeSrc": "9512:22:19", + "nodeType": "YulFunctionCall", + "src": "9512:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9536:7:19", + "nodeType": "YulIdentifier", + "src": "9536:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "9494:17:19", + "nodeType": "YulIdentifier", + "src": "9494:17:19" + }, + "nativeSrc": "9494:50:19", + "nodeType": "YulFunctionCall", + "src": "9494:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9484:6:19", + "nodeType": "YulIdentifier", + "src": "9484:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "9093:468:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9135:9:19", + "nodeType": "YulTypedName", + "src": "9135:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9146:7:19", + "nodeType": "YulTypedName", + "src": "9146:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9158:6:19", + "nodeType": "YulTypedName", + "src": "9158:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9166:6:19", + "nodeType": "YulTypedName", + "src": "9166:6:19", + "type": "" + } + ], + "src": "9093:468:19" + }, + { + "body": { + "nativeSrc": "9633:241:19", + "nodeType": "YulBlock", + "src": "9633:241:19", + "statements": [ + { + "body": { + "nativeSrc": "9738:22:19", + "nodeType": "YulBlock", + "src": "9738:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "9740:16:19", + "nodeType": "YulIdentifier", + "src": "9740:16:19" + }, + "nativeSrc": "9740:18:19", + "nodeType": "YulFunctionCall", + "src": "9740:18:19" + }, + "nativeSrc": "9740:18:19", + "nodeType": "YulExpressionStatement", + "src": "9740:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9710:6:19", + "nodeType": "YulIdentifier", + "src": "9710:6:19" + }, + { + "kind": "number", + "nativeSrc": "9718:18:19", + "nodeType": "YulLiteral", + "src": "9718:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9707:2:19", + "nodeType": "YulIdentifier", + "src": "9707:2:19" + }, + "nativeSrc": "9707:30:19", + "nodeType": "YulFunctionCall", + "src": "9707:30:19" + }, + "nativeSrc": "9704:56:19", + "nodeType": "YulIf", + "src": "9704:56:19" + }, + { + "nativeSrc": "9770:37:19", + "nodeType": "YulAssignment", + "src": "9770:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9800:6:19", + "nodeType": "YulIdentifier", + "src": "9800:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "9778:21:19", + "nodeType": "YulIdentifier", + "src": "9778:21:19" + }, + "nativeSrc": "9778:29:19", + "nodeType": "YulFunctionCall", + "src": "9778:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9770:4:19", + "nodeType": "YulIdentifier", + "src": "9770:4:19" + } + ] + }, + { + "nativeSrc": "9844:23:19", + "nodeType": "YulAssignment", + "src": "9844:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "9856:4:19", + "nodeType": "YulIdentifier", + "src": "9856:4:19" + }, + { + "kind": "number", + "nativeSrc": "9862:4:19", + "nodeType": "YulLiteral", + "src": "9862:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9852:3:19", + "nodeType": "YulIdentifier", + "src": "9852:3:19" + }, + "nativeSrc": "9852:15:19", + "nodeType": "YulFunctionCall", + "src": "9852:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9844:4:19", + "nodeType": "YulIdentifier", + "src": "9844:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9567:307:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "9617:6:19", + "nodeType": "YulTypedName", + "src": "9617:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "9628:4:19", + "nodeType": "YulTypedName", + "src": "9628:4:19", + "type": "" + } + ], + "src": "9567:307:19" + }, + { + "body": { + "nativeSrc": "9963:340:19", + "nodeType": "YulBlock", + "src": "9963:340:19", + "statements": [ + { + "nativeSrc": "9973:74:19", + "nodeType": "YulAssignment", + "src": "9973:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "10039:6:19", + "nodeType": "YulIdentifier", + "src": "10039:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9998:40:19", + "nodeType": "YulIdentifier", + "src": "9998:40:19" + }, + "nativeSrc": "9998:48:19", + "nodeType": "YulFunctionCall", + "src": "9998:48:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9982:15:19", + "nodeType": "YulIdentifier", + "src": "9982:15:19" + }, + "nativeSrc": "9982:65:19", + "nodeType": "YulFunctionCall", + "src": "9982:65:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9973:5:19", + "nodeType": "YulIdentifier", + "src": "9973:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10063:5:19", + "nodeType": "YulIdentifier", + "src": "10063:5:19" + }, + { + "name": "length", + "nativeSrc": "10070:6:19", + "nodeType": "YulIdentifier", + "src": "10070:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10056:6:19", + "nodeType": "YulIdentifier", + "src": "10056:6:19" + }, + "nativeSrc": "10056:21:19", + "nodeType": "YulFunctionCall", + "src": "10056:21:19" + }, + "nativeSrc": "10056:21:19", + "nodeType": "YulExpressionStatement", + "src": "10056:21:19" + }, + { + "nativeSrc": "10086:27:19", + "nodeType": "YulVariableDeclaration", + "src": "10086:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10101:5:19", + "nodeType": "YulIdentifier", + "src": "10101:5:19" + }, + { + "kind": "number", + "nativeSrc": "10108:4:19", + "nodeType": "YulLiteral", + "src": "10108:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10097:3:19", + "nodeType": "YulIdentifier", + "src": "10097:3:19" + }, + "nativeSrc": "10097:16:19", + "nodeType": "YulFunctionCall", + "src": "10097:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "10090:3:19", + "nodeType": "YulTypedName", + "src": "10090:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10151:83:19", + "nodeType": "YulBlock", + "src": "10151:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "10153:77:19", + "nodeType": "YulIdentifier", + "src": "10153:77:19" + }, + "nativeSrc": "10153:79:19", + "nodeType": "YulFunctionCall", + "src": "10153:79:19" + }, + "nativeSrc": "10153:79:19", + "nodeType": "YulExpressionStatement", + "src": "10153:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "10132:3:19", + "nodeType": "YulIdentifier", + "src": "10132:3:19" + }, + { + "name": "length", + "nativeSrc": "10137:6:19", + "nodeType": "YulIdentifier", + "src": "10137:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10128:3:19", + "nodeType": "YulIdentifier", + "src": "10128:3:19" + }, + "nativeSrc": "10128:16:19", + "nodeType": "YulFunctionCall", + "src": "10128:16:19" + }, + { + "name": "end", + "nativeSrc": "10146:3:19", + "nodeType": "YulIdentifier", + "src": "10146:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10125:2:19", + "nodeType": "YulIdentifier", + "src": "10125:2:19" + }, + "nativeSrc": "10125:25:19", + "nodeType": "YulFunctionCall", + "src": "10125:25:19" + }, + "nativeSrc": "10122:112:19", + "nodeType": "YulIf", + "src": "10122:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "10280:3:19", + "nodeType": "YulIdentifier", + "src": "10280:3:19" + }, + { + "name": "dst", + "nativeSrc": "10285:3:19", + "nodeType": "YulIdentifier", + "src": "10285:3:19" + }, + { + "name": "length", + "nativeSrc": "10290:6:19", + "nodeType": "YulIdentifier", + "src": "10290:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "10243:36:19", + "nodeType": "YulIdentifier", + "src": "10243:36:19" + }, + "nativeSrc": "10243:54:19", + "nodeType": "YulFunctionCall", + "src": "10243:54:19" + }, + "nativeSrc": "10243:54:19", + "nodeType": "YulExpressionStatement", + "src": "10243:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9880:423:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "9936:3:19", + "nodeType": "YulTypedName", + "src": "9936:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9941:6:19", + "nodeType": "YulTypedName", + "src": "9941:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9949:3:19", + "nodeType": "YulTypedName", + "src": "9949:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9957:5:19", + "nodeType": "YulTypedName", + "src": "9957:5:19", + "type": "" + } + ], + "src": "9880:423:19" + }, + { + "body": { + "nativeSrc": "10383:277:19", + "nodeType": "YulBlock", + "src": "10383:277:19", + "statements": [ + { + "body": { + "nativeSrc": "10432:83:19", + "nodeType": "YulBlock", + "src": "10432:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "10434:77:19", + "nodeType": "YulIdentifier", + "src": "10434:77:19" + }, + "nativeSrc": "10434:79:19", + "nodeType": "YulFunctionCall", + "src": "10434:79:19" + }, + "nativeSrc": "10434:79:19", + "nodeType": "YulExpressionStatement", + "src": "10434:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10411:6:19", + "nodeType": "YulIdentifier", + "src": "10411:6:19" + }, + { + "kind": "number", + "nativeSrc": "10419:4:19", + "nodeType": "YulLiteral", + "src": "10419:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10407:3:19", + "nodeType": "YulIdentifier", + "src": "10407:3:19" + }, + "nativeSrc": "10407:17:19", + "nodeType": "YulFunctionCall", + "src": "10407:17:19" + }, + { + "name": "end", + "nativeSrc": "10426:3:19", + "nodeType": "YulIdentifier", + "src": "10426:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10403:3:19", + "nodeType": "YulIdentifier", + "src": "10403:3:19" + }, + "nativeSrc": "10403:27:19", + "nodeType": "YulFunctionCall", + "src": "10403:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10396:6:19", + "nodeType": "YulIdentifier", + "src": "10396:6:19" + }, + "nativeSrc": "10396:35:19", + "nodeType": "YulFunctionCall", + "src": "10396:35:19" + }, + "nativeSrc": "10393:122:19", + "nodeType": "YulIf", + "src": "10393:122:19" + }, + { + "nativeSrc": "10524:34:19", + "nodeType": "YulVariableDeclaration", + "src": "10524:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10551:6:19", + "nodeType": "YulIdentifier", + "src": "10551:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10538:12:19", + "nodeType": "YulIdentifier", + "src": "10538:12:19" + }, + "nativeSrc": "10538:20:19", + "nodeType": "YulFunctionCall", + "src": "10538:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10528:6:19", + "nodeType": "YulTypedName", + "src": "10528:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10567:87:19", + "nodeType": "YulAssignment", + "src": "10567:87:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10627:6:19", + "nodeType": "YulIdentifier", + "src": "10627:6:19" + }, + { + "kind": "number", + "nativeSrc": "10635:4:19", + "nodeType": "YulLiteral", + "src": "10635:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10623:3:19", + "nodeType": "YulIdentifier", + "src": "10623:3:19" + }, + "nativeSrc": "10623:17:19", + "nodeType": "YulFunctionCall", + "src": "10623:17:19" + }, + { + "name": "length", + "nativeSrc": "10642:6:19", + "nodeType": "YulIdentifier", + "src": "10642:6:19" + }, + { + "name": "end", + "nativeSrc": "10650:3:19", + "nodeType": "YulIdentifier", + "src": "10650:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "10576:46:19", + "nodeType": "YulIdentifier", + "src": "10576:46:19" + }, + "nativeSrc": "10576:78:19", + "nodeType": "YulFunctionCall", + "src": "10576:78:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "10567:5:19", + "nodeType": "YulIdentifier", + "src": "10567:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "10322:338:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "10361:6:19", + "nodeType": "YulTypedName", + "src": "10361:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "10369:3:19", + "nodeType": "YulTypedName", + "src": "10369:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "10377:5:19", + "nodeType": "YulTypedName", + "src": "10377:5:19", + "type": "" + } + ], + "src": "10322:338:19" + }, + { + "body": { + "nativeSrc": "10792:817:19", + "nodeType": "YulBlock", + "src": "10792:817:19", + "statements": [ + { + "body": { + "nativeSrc": "10839:83:19", + "nodeType": "YulBlock", + "src": "10839:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10841:77:19", + "nodeType": "YulIdentifier", + "src": "10841:77:19" + }, + "nativeSrc": "10841:79:19", + "nodeType": "YulFunctionCall", + "src": "10841:79:19" + }, + "nativeSrc": "10841:79:19", + "nodeType": "YulExpressionStatement", + "src": "10841:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10813:7:19", + "nodeType": "YulIdentifier", + "src": "10813:7:19" + }, + { + "name": "headStart", + "nativeSrc": "10822:9:19", + "nodeType": "YulIdentifier", + "src": "10822:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10809:3:19", + "nodeType": "YulIdentifier", + "src": "10809:3:19" + }, + "nativeSrc": "10809:23:19", + "nodeType": "YulFunctionCall", + "src": "10809:23:19" + }, + { + "kind": "number", + "nativeSrc": "10834:3:19", + "nodeType": "YulLiteral", + "src": "10834:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10805:3:19", + "nodeType": "YulIdentifier", + "src": "10805:3:19" + }, + "nativeSrc": "10805:33:19", + "nodeType": "YulFunctionCall", + "src": "10805:33:19" + }, + "nativeSrc": "10802:120:19", + "nodeType": "YulIf", + "src": "10802:120:19" + }, + { + "nativeSrc": "10932:117:19", + "nodeType": "YulBlock", + "src": "10932:117:19", + "statements": [ + { + "nativeSrc": "10947:15:19", + "nodeType": "YulVariableDeclaration", + "src": "10947:15:19", + "value": { + "kind": "number", + "nativeSrc": "10961:1:19", + "nodeType": "YulLiteral", + "src": "10961:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10951:6:19", + "nodeType": "YulTypedName", + "src": "10951:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10976:63:19", + "nodeType": "YulAssignment", + "src": "10976:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11011:9:19", + "nodeType": "YulIdentifier", + "src": "11011:9:19" + }, + { + "name": "offset", + "nativeSrc": "11022:6:19", + "nodeType": "YulIdentifier", + "src": "11022:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11007:3:19", + "nodeType": "YulIdentifier", + "src": "11007:3:19" + }, + "nativeSrc": "11007:22:19", + "nodeType": "YulFunctionCall", + "src": "11007:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11031:7:19", + "nodeType": "YulIdentifier", + "src": "11031:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10986:20:19", + "nodeType": "YulIdentifier", + "src": "10986:20:19" + }, + "nativeSrc": "10986:53:19", + "nodeType": "YulFunctionCall", + "src": "10986:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10976:6:19", + "nodeType": "YulIdentifier", + "src": "10976:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11059:118:19", + "nodeType": "YulBlock", + "src": "11059:118:19", + "statements": [ + { + "nativeSrc": "11074:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11074:16:19", + "value": { + "kind": "number", + "nativeSrc": "11088:2:19", + "nodeType": "YulLiteral", + "src": "11088:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11078:6:19", + "nodeType": "YulTypedName", + "src": "11078:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11104:63:19", + "nodeType": "YulAssignment", + "src": "11104:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11139:9:19", + "nodeType": "YulIdentifier", + "src": "11139:9:19" + }, + { + "name": "offset", + "nativeSrc": "11150:6:19", + "nodeType": "YulIdentifier", + "src": "11150:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11135:3:19", + "nodeType": "YulIdentifier", + "src": "11135:3:19" + }, + "nativeSrc": "11135:22:19", + "nodeType": "YulFunctionCall", + "src": "11135:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11159:7:19", + "nodeType": "YulIdentifier", + "src": "11159:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11114:20:19", + "nodeType": "YulIdentifier", + "src": "11114:20:19" + }, + "nativeSrc": "11114:53:19", + "nodeType": "YulFunctionCall", + "src": "11114:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11104:6:19", + "nodeType": "YulIdentifier", + "src": "11104:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11187:118:19", + "nodeType": "YulBlock", + "src": "11187:118:19", + "statements": [ + { + "nativeSrc": "11202:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11202:16:19", + "value": { + "kind": "number", + "nativeSrc": "11216:2:19", + "nodeType": "YulLiteral", + "src": "11216:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11206:6:19", + "nodeType": "YulTypedName", + "src": "11206:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11232:63:19", + "nodeType": "YulAssignment", + "src": "11232:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11267:9:19", + "nodeType": "YulIdentifier", + "src": "11267:9:19" + }, + { + "name": "offset", + "nativeSrc": "11278:6:19", + "nodeType": "YulIdentifier", + "src": "11278:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11263:3:19", + "nodeType": "YulIdentifier", + "src": "11263:3:19" + }, + "nativeSrc": "11263:22:19", + "nodeType": "YulFunctionCall", + "src": "11263:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11287:7:19", + "nodeType": "YulIdentifier", + "src": "11287:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "11242:20:19", + "nodeType": "YulIdentifier", + "src": "11242:20:19" + }, + "nativeSrc": "11242:53:19", + "nodeType": "YulFunctionCall", + "src": "11242:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11232:6:19", + "nodeType": "YulIdentifier", + "src": "11232:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11315:287:19", + "nodeType": "YulBlock", + "src": "11315:287:19", + "statements": [ + { + "nativeSrc": "11330:46:19", + "nodeType": "YulVariableDeclaration", + "src": "11330:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11361:9:19", + "nodeType": "YulIdentifier", + "src": "11361:9:19" + }, + { + "kind": "number", + "nativeSrc": "11372:2:19", + "nodeType": "YulLiteral", + "src": "11372:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11357:3:19", + "nodeType": "YulIdentifier", + "src": "11357:3:19" + }, + "nativeSrc": "11357:18:19", + "nodeType": "YulFunctionCall", + "src": "11357:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11344:12:19", + "nodeType": "YulIdentifier", + "src": "11344:12:19" + }, + "nativeSrc": "11344:32:19", + "nodeType": "YulFunctionCall", + "src": "11344:32:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11334:6:19", + "nodeType": "YulTypedName", + "src": "11334:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11423:83:19", + "nodeType": "YulBlock", + "src": "11423:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "11425:77:19", + "nodeType": "YulIdentifier", + "src": "11425:77:19" + }, + "nativeSrc": "11425:79:19", + "nodeType": "YulFunctionCall", + "src": "11425:79:19" + }, + "nativeSrc": "11425:79:19", + "nodeType": "YulExpressionStatement", + "src": "11425:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11395:6:19", + "nodeType": "YulIdentifier", + "src": "11395:6:19" + }, + { + "kind": "number", + "nativeSrc": "11403:18:19", + "nodeType": "YulLiteral", + "src": "11403:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11392:2:19", + "nodeType": "YulIdentifier", + "src": "11392:2:19" + }, + "nativeSrc": "11392:30:19", + "nodeType": "YulFunctionCall", + "src": "11392:30:19" + }, + "nativeSrc": "11389:117:19", + "nodeType": "YulIf", + "src": "11389:117:19" + }, + { + "nativeSrc": "11520:72:19", + "nodeType": "YulAssignment", + "src": "11520:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11564:9:19", + "nodeType": "YulIdentifier", + "src": "11564:9:19" + }, + { + "name": "offset", + "nativeSrc": "11575:6:19", + "nodeType": "YulIdentifier", + "src": "11575:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11560:3:19", + "nodeType": "YulIdentifier", + "src": "11560:3:19" + }, + "nativeSrc": "11560:22:19", + "nodeType": "YulFunctionCall", + "src": "11560:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11584:7:19", + "nodeType": "YulIdentifier", + "src": "11584:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11530:29:19", + "nodeType": "YulIdentifier", + "src": "11530:29:19" + }, + "nativeSrc": "11530:62:19", + "nodeType": "YulFunctionCall", + "src": "11530:62:19" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "11520:6:19", + "nodeType": "YulIdentifier", + "src": "11520:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "10666:943:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10738:9:19", + "nodeType": "YulTypedName", + "src": "10738:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10749:7:19", + "nodeType": "YulTypedName", + "src": "10749:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10761:6:19", + "nodeType": "YulTypedName", + "src": "10761:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10769:6:19", + "nodeType": "YulTypedName", + "src": "10769:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10777:6:19", + "nodeType": "YulTypedName", + "src": "10777:6:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "10785:6:19", + "nodeType": "YulTypedName", + "src": "10785:6:19", + "type": "" + } + ], + "src": "10666:943:19" + }, + { + "body": { + "nativeSrc": "11698:391:19", + "nodeType": "YulBlock", + "src": "11698:391:19", + "statements": [ + { + "body": { + "nativeSrc": "11744:83:19", + "nodeType": "YulBlock", + "src": "11744:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11746:77:19", + "nodeType": "YulIdentifier", + "src": "11746:77:19" + }, + "nativeSrc": "11746:79:19", + "nodeType": "YulFunctionCall", + "src": "11746:79:19" + }, + "nativeSrc": "11746:79:19", + "nodeType": "YulExpressionStatement", + "src": "11746:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11719:7:19", + "nodeType": "YulIdentifier", + "src": "11719:7:19" + }, + { + "name": "headStart", + "nativeSrc": "11728:9:19", + "nodeType": "YulIdentifier", + "src": "11728:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11715:3:19", + "nodeType": "YulIdentifier", + "src": "11715:3:19" + }, + "nativeSrc": "11715:23:19", + "nodeType": "YulFunctionCall", + "src": "11715:23:19" + }, + { + "kind": "number", + "nativeSrc": "11740:2:19", + "nodeType": "YulLiteral", + "src": "11740:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11711:3:19", + "nodeType": "YulIdentifier", + "src": "11711:3:19" + }, + "nativeSrc": "11711:32:19", + "nodeType": "YulFunctionCall", + "src": "11711:32:19" + }, + "nativeSrc": "11708:119:19", + "nodeType": "YulIf", + "src": "11708:119:19" + }, + { + "nativeSrc": "11837:117:19", + "nodeType": "YulBlock", + "src": "11837:117:19", + "statements": [ + { + "nativeSrc": "11852:15:19", + "nodeType": "YulVariableDeclaration", + "src": "11852:15:19", + "value": { + "kind": "number", + "nativeSrc": "11866:1:19", + "nodeType": "YulLiteral", + "src": "11866:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11856:6:19", + "nodeType": "YulTypedName", + "src": "11856:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11881:63:19", + "nodeType": "YulAssignment", + "src": "11881:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11916:9:19", + "nodeType": "YulIdentifier", + "src": "11916:9:19" + }, + { + "name": "offset", + "nativeSrc": "11927:6:19", + "nodeType": "YulIdentifier", + "src": "11927:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11912:3:19", + "nodeType": "YulIdentifier", + "src": "11912:3:19" + }, + "nativeSrc": "11912:22:19", + "nodeType": "YulFunctionCall", + "src": "11912:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11936:7:19", + "nodeType": "YulIdentifier", + "src": "11936:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11891:20:19", + "nodeType": "YulIdentifier", + "src": "11891:20:19" + }, + "nativeSrc": "11891:53:19", + "nodeType": "YulFunctionCall", + "src": "11891:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11881:6:19", + "nodeType": "YulIdentifier", + "src": "11881:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11964:118:19", + "nodeType": "YulBlock", + "src": "11964:118:19", + "statements": [ + { + "nativeSrc": "11979:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11979:16:19", + "value": { + "kind": "number", + "nativeSrc": "11993:2:19", + "nodeType": "YulLiteral", + "src": "11993:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11983:6:19", + "nodeType": "YulTypedName", + "src": "11983:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "12009:63:19", + "nodeType": "YulAssignment", + "src": "12009:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12044:9:19", + "nodeType": "YulIdentifier", + "src": "12044:9:19" + }, + { + "name": "offset", + "nativeSrc": "12055:6:19", + "nodeType": "YulIdentifier", + "src": "12055:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12040:3:19", + "nodeType": "YulIdentifier", + "src": "12040:3:19" + }, + "nativeSrc": "12040:22:19", + "nodeType": "YulFunctionCall", + "src": "12040:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "12064:7:19", + "nodeType": "YulIdentifier", + "src": "12064:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12019:20:19", + "nodeType": "YulIdentifier", + "src": "12019:20:19" + }, + "nativeSrc": "12019:53:19", + "nodeType": "YulFunctionCall", + "src": "12019:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12009:6:19", + "nodeType": "YulIdentifier", + "src": "12009:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "11615:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11660:9:19", + "nodeType": "YulTypedName", + "src": "11660:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11671:7:19", + "nodeType": "YulTypedName", + "src": "11671:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11683:6:19", + "nodeType": "YulTypedName", + "src": "11683:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11691:6:19", + "nodeType": "YulTypedName", + "src": "11691:6:19", + "type": "" + } + ], + "src": "11615:474:19" + }, + { + "body": { + "nativeSrc": "12123:152:19", + "nodeType": "YulBlock", + "src": "12123:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12140:1:19", + "nodeType": "YulLiteral", + "src": "12140:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12143:77:19", + "nodeType": "YulLiteral", + "src": "12143:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12133:6:19", + "nodeType": "YulIdentifier", + "src": "12133:6:19" + }, + "nativeSrc": "12133:88:19", + "nodeType": "YulFunctionCall", + "src": "12133:88:19" + }, + "nativeSrc": "12133:88:19", + "nodeType": "YulExpressionStatement", + "src": "12133:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12237:1:19", + "nodeType": "YulLiteral", + "src": "12237:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12240:4:19", + "nodeType": "YulLiteral", + "src": "12240:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12230:6:19", + "nodeType": "YulIdentifier", + "src": "12230:6:19" + }, + "nativeSrc": "12230:15:19", + "nodeType": "YulFunctionCall", + "src": "12230:15:19" + }, + "nativeSrc": "12230:15:19", + "nodeType": "YulExpressionStatement", + "src": "12230:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12261:1:19", + "nodeType": "YulLiteral", + "src": "12261:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12264:4:19", + "nodeType": "YulLiteral", + "src": "12264:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12254:6:19", + "nodeType": "YulIdentifier", + "src": "12254:6:19" + }, + "nativeSrc": "12254:15:19", + "nodeType": "YulFunctionCall", + "src": "12254:15:19" + }, + "nativeSrc": "12254:15:19", + "nodeType": "YulExpressionStatement", + "src": "12254:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "12095:180:19", + "nodeType": "YulFunctionDefinition", + "src": "12095:180:19" + }, + { + "body": { + "nativeSrc": "12332:269:19", + "nodeType": "YulBlock", + "src": "12332:269:19", + "statements": [ + { + "nativeSrc": "12342:22:19", + "nodeType": "YulAssignment", + "src": "12342:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12356:4:19", + "nodeType": "YulIdentifier", + "src": "12356:4:19" + }, + { + "kind": "number", + "nativeSrc": "12362:1:19", + "nodeType": "YulLiteral", + "src": "12362:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "12352:3:19", + "nodeType": "YulIdentifier", + "src": "12352:3:19" + }, + "nativeSrc": "12352:12:19", + "nodeType": "YulFunctionCall", + "src": "12352:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12342:6:19", + "nodeType": "YulIdentifier", + "src": "12342:6:19" + } + ] + }, + { + "nativeSrc": "12373:38:19", + "nodeType": "YulVariableDeclaration", + "src": "12373:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12403:4:19", + "nodeType": "YulIdentifier", + "src": "12403:4:19" + }, + { + "kind": "number", + "nativeSrc": "12409:1:19", + "nodeType": "YulLiteral", + "src": "12409:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12399:3:19", + "nodeType": "YulIdentifier", + "src": "12399:3:19" + }, + "nativeSrc": "12399:12:19", + "nodeType": "YulFunctionCall", + "src": "12399:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12377:18:19", + "nodeType": "YulTypedName", + "src": "12377:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12450:51:19", + "nodeType": "YulBlock", + "src": "12450:51:19", + "statements": [ + { + "nativeSrc": "12464:27:19", + "nodeType": "YulAssignment", + "src": "12464:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12478:6:19", + "nodeType": "YulIdentifier", + "src": "12478:6:19" + }, + { + "kind": "number", + "nativeSrc": "12486:4:19", + "nodeType": "YulLiteral", + "src": "12486:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12474:3:19", + "nodeType": "YulIdentifier", + "src": "12474:3:19" + }, + "nativeSrc": "12474:17:19", + "nodeType": "YulFunctionCall", + "src": "12474:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12464:6:19", + "nodeType": "YulIdentifier", + "src": "12464:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12430:18:19", + "nodeType": "YulIdentifier", + "src": "12430:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12423:6:19", + "nodeType": "YulIdentifier", + "src": "12423:6:19" + }, + "nativeSrc": "12423:26:19", + "nodeType": "YulFunctionCall", + "src": "12423:26:19" + }, + "nativeSrc": "12420:81:19", + "nodeType": "YulIf", + "src": "12420:81:19" + }, + { + "body": { + "nativeSrc": "12553:42:19", + "nodeType": "YulBlock", + "src": "12553:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "12567:16:19", + "nodeType": "YulIdentifier", + "src": "12567:16:19" + }, + "nativeSrc": "12567:18:19", + "nodeType": "YulFunctionCall", + "src": "12567:18:19" + }, + "nativeSrc": "12567:18:19", + "nodeType": "YulExpressionStatement", + "src": "12567:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12517:18:19", + "nodeType": "YulIdentifier", + "src": "12517:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12540:6:19", + "nodeType": "YulIdentifier", + "src": "12540:6:19" + }, + { + "kind": "number", + "nativeSrc": "12548:2:19", + "nodeType": "YulLiteral", + "src": "12548:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12537:2:19", + "nodeType": "YulIdentifier", + "src": "12537:2:19" + }, + "nativeSrc": "12537:14:19", + "nodeType": "YulFunctionCall", + "src": "12537:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "12514:2:19", + "nodeType": "YulIdentifier", + "src": "12514:2:19" + }, + "nativeSrc": "12514:38:19", + "nodeType": "YulFunctionCall", + "src": "12514:38:19" + }, + "nativeSrc": "12511:84:19", + "nodeType": "YulIf", + "src": "12511:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "12281:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "12316:4:19", + "nodeType": "YulTypedName", + "src": "12316:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "12325:6:19", + "nodeType": "YulTypedName", + "src": "12325:6:19", + "type": "" + } + ], + "src": "12281:320:19" + }, + { + "body": { + "nativeSrc": "12761:288:19", + "nodeType": "YulBlock", + "src": "12761:288:19", + "statements": [ + { + "nativeSrc": "12771:26:19", + "nodeType": "YulAssignment", + "src": "12771:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12783:9:19", + "nodeType": "YulIdentifier", + "src": "12783:9:19" + }, + { + "kind": "number", + "nativeSrc": "12794:2:19", + "nodeType": "YulLiteral", + "src": "12794:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12779:3:19", + "nodeType": "YulIdentifier", + "src": "12779:3:19" + }, + "nativeSrc": "12779:18:19", + "nodeType": "YulFunctionCall", + "src": "12779:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12771:4:19", + "nodeType": "YulIdentifier", + "src": "12771:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12851:6:19", + "nodeType": "YulIdentifier", + "src": "12851:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12864:9:19", + "nodeType": "YulIdentifier", + "src": "12864:9:19" + }, + { + "kind": "number", + "nativeSrc": "12875:1:19", + "nodeType": "YulLiteral", + "src": "12875:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12860:3:19", + "nodeType": "YulIdentifier", + "src": "12860:3:19" + }, + "nativeSrc": "12860:17:19", + "nodeType": "YulFunctionCall", + "src": "12860:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12807:43:19", + "nodeType": "YulIdentifier", + "src": "12807:43:19" + }, + "nativeSrc": "12807:71:19", + "nodeType": "YulFunctionCall", + "src": "12807:71:19" + }, + "nativeSrc": "12807:71:19", + "nodeType": "YulExpressionStatement", + "src": "12807:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "12932:6:19", + "nodeType": "YulIdentifier", + "src": "12932:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12945:9:19", + "nodeType": "YulIdentifier", + "src": "12945:9:19" + }, + { + "kind": "number", + "nativeSrc": "12956:2:19", + "nodeType": "YulLiteral", + "src": "12956:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12941:3:19", + "nodeType": "YulIdentifier", + "src": "12941:3:19" + }, + "nativeSrc": "12941:18:19", + "nodeType": "YulFunctionCall", + "src": "12941:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12888:43:19", + "nodeType": "YulIdentifier", + "src": "12888:43:19" + }, + "nativeSrc": "12888:72:19", + "nodeType": "YulFunctionCall", + "src": "12888:72:19" + }, + "nativeSrc": "12888:72:19", + "nodeType": "YulExpressionStatement", + "src": "12888:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "13014:6:19", + "nodeType": "YulIdentifier", + "src": "13014:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13027:9:19", + "nodeType": "YulIdentifier", + "src": "13027:9:19" + }, + { + "kind": "number", + "nativeSrc": "13038:2:19", + "nodeType": "YulLiteral", + "src": "13038:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13023:3:19", + "nodeType": "YulIdentifier", + "src": "13023:3:19" + }, + "nativeSrc": "13023:18:19", + "nodeType": "YulFunctionCall", + "src": "13023:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12970:43:19", + "nodeType": "YulIdentifier", + "src": "12970:43:19" + }, + "nativeSrc": "12970:72:19", + "nodeType": "YulFunctionCall", + "src": "12970:72:19" + }, + "nativeSrc": "12970:72:19", + "nodeType": "YulExpressionStatement", + "src": "12970:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "12607:442:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12717:9:19", + "nodeType": "YulTypedName", + "src": "12717:9:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12729:6:19", + "nodeType": "YulTypedName", + "src": "12729:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12737:6:19", + "nodeType": "YulTypedName", + "src": "12737:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12745:6:19", + "nodeType": "YulTypedName", + "src": "12745:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12756:4:19", + "nodeType": "YulTypedName", + "src": "12756:4:19", + "type": "" + } + ], + "src": "12607:442:19" + }, + { + "body": { + "nativeSrc": "13181:206:19", + "nodeType": "YulBlock", + "src": "13181:206:19", + "statements": [ + { + "nativeSrc": "13191:26:19", + "nodeType": "YulAssignment", + "src": "13191:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13203:9:19", + "nodeType": "YulIdentifier", + "src": "13203:9:19" + }, + { + "kind": "number", + "nativeSrc": "13214:2:19", + "nodeType": "YulLiteral", + "src": "13214:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13199:3:19", + "nodeType": "YulIdentifier", + "src": "13199:3:19" + }, + "nativeSrc": "13199:18:19", + "nodeType": "YulFunctionCall", + "src": "13199:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13191:4:19", + "nodeType": "YulIdentifier", + "src": "13191:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "13271:6:19", + "nodeType": "YulIdentifier", + "src": "13271:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13284:9:19", + "nodeType": "YulIdentifier", + "src": "13284:9:19" + }, + { + "kind": "number", + "nativeSrc": "13295:1:19", + "nodeType": "YulLiteral", + "src": "13295:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13280:3:19", + "nodeType": "YulIdentifier", + "src": "13280:3:19" + }, + "nativeSrc": "13280:17:19", + "nodeType": "YulFunctionCall", + "src": "13280:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "13227:43:19", + "nodeType": "YulIdentifier", + "src": "13227:43:19" + }, + "nativeSrc": "13227:71:19", + "nodeType": "YulFunctionCall", + "src": "13227:71:19" + }, + "nativeSrc": "13227:71:19", + "nodeType": "YulExpressionStatement", + "src": "13227:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "13352:6:19", + "nodeType": "YulIdentifier", + "src": "13352:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13365:9:19", + "nodeType": "YulIdentifier", + "src": "13365:9:19" + }, + { + "kind": "number", + "nativeSrc": "13376:2:19", + "nodeType": "YulLiteral", + "src": "13376:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13361:3:19", + "nodeType": "YulIdentifier", + "src": "13361:3:19" + }, + "nativeSrc": "13361:18:19", + "nodeType": "YulFunctionCall", + "src": "13361:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "13308:43:19", + "nodeType": "YulIdentifier", + "src": "13308:43:19" + }, + "nativeSrc": "13308:72:19", + "nodeType": "YulFunctionCall", + "src": "13308:72:19" + }, + "nativeSrc": "13308:72:19", + "nodeType": "YulExpressionStatement", + "src": "13308:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "13055:332:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13145:9:19", + "nodeType": "YulTypedName", + "src": "13145:9:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13157:6:19", + "nodeType": "YulTypedName", + "src": "13157:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13165:6:19", + "nodeType": "YulTypedName", + "src": "13165:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13176:4:19", + "nodeType": "YulTypedName", + "src": "13176:4:19", + "type": "" + } + ], + "src": "13055:332:19" + }, + { + "body": { + "nativeSrc": "13421:152:19", + "nodeType": "YulBlock", + "src": "13421:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13438:1:19", + "nodeType": "YulLiteral", + "src": "13438:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13441:77:19", + "nodeType": "YulLiteral", + "src": "13441:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13431:6:19", + "nodeType": "YulIdentifier", + "src": "13431:6:19" + }, + "nativeSrc": "13431:88:19", + "nodeType": "YulFunctionCall", + "src": "13431:88:19" + }, + "nativeSrc": "13431:88:19", + "nodeType": "YulExpressionStatement", + "src": "13431:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13535:1:19", + "nodeType": "YulLiteral", + "src": "13535:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "13538:4:19", + "nodeType": "YulLiteral", + "src": "13538:4:19", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13528:6:19", + "nodeType": "YulIdentifier", + "src": "13528:6:19" + }, + "nativeSrc": "13528:15:19", + "nodeType": "YulFunctionCall", + "src": "13528:15:19" + }, + "nativeSrc": "13528:15:19", + "nodeType": "YulExpressionStatement", + "src": "13528:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13559:1:19", + "nodeType": "YulLiteral", + "src": "13559:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13562:4:19", + "nodeType": "YulLiteral", + "src": "13562:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13552:6:19", + "nodeType": "YulIdentifier", + "src": "13552:6:19" + }, + "nativeSrc": "13552:15:19", + "nodeType": "YulFunctionCall", + "src": "13552:15:19" + }, + "nativeSrc": "13552:15:19", + "nodeType": "YulExpressionStatement", + "src": "13552:15:19" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "13393:180:19", + "nodeType": "YulFunctionDefinition", + "src": "13393:180:19" + }, + { + "body": { + "nativeSrc": "13622:190:19", + "nodeType": "YulBlock", + "src": "13622:190:19", + "statements": [ + { + "nativeSrc": "13632:33:19", + "nodeType": "YulAssignment", + "src": "13632:33:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13659:5:19", + "nodeType": "YulIdentifier", + "src": "13659:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "13641:17:19", + "nodeType": "YulIdentifier", + "src": "13641:17:19" + }, + "nativeSrc": "13641:24:19", + "nodeType": "YulFunctionCall", + "src": "13641:24:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13632:5:19", + "nodeType": "YulIdentifier", + "src": "13632:5:19" + } + ] + }, + { + "body": { + "nativeSrc": "13755:22:19", + "nodeType": "YulBlock", + "src": "13755:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "13757:16:19", + "nodeType": "YulIdentifier", + "src": "13757:16:19" + }, + "nativeSrc": "13757:18:19", + "nodeType": "YulFunctionCall", + "src": "13757:18:19" + }, + "nativeSrc": "13757:18:19", + "nodeType": "YulExpressionStatement", + "src": "13757:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13680:5:19", + "nodeType": "YulIdentifier", + "src": "13680:5:19" + }, + { + "kind": "number", + "nativeSrc": "13687:66:19", + "nodeType": "YulLiteral", + "src": "13687:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "13677:2:19", + "nodeType": "YulIdentifier", + "src": "13677:2:19" + }, + "nativeSrc": "13677:77:19", + "nodeType": "YulFunctionCall", + "src": "13677:77:19" + }, + "nativeSrc": "13674:103:19", + "nodeType": "YulIf", + "src": "13674:103:19" + }, + { + "nativeSrc": "13786:20:19", + "nodeType": "YulAssignment", + "src": "13786:20:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13797:5:19", + "nodeType": "YulIdentifier", + "src": "13797:5:19" + }, + { + "kind": "number", + "nativeSrc": "13804:1:19", + "nodeType": "YulLiteral", + "src": "13804:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13793:3:19", + "nodeType": "YulIdentifier", + "src": "13793:3:19" + }, + "nativeSrc": "13793:13:19", + "nodeType": "YulFunctionCall", + "src": "13793:13:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "13786:3:19", + "nodeType": "YulIdentifier", + "src": "13786:3:19" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "13579:233:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "13608:5:19", + "nodeType": "YulTypedName", + "src": "13608:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "13618:3:19", + "nodeType": "YulTypedName", + "src": "13618:3:19", + "type": "" + } + ], + "src": "13579:233:19" + }, + { + "body": { + "nativeSrc": "13932:34:19", + "nodeType": "YulBlock", + "src": "13932:34:19", + "statements": [ + { + "nativeSrc": "13942:18:19", + "nodeType": "YulAssignment", + "src": "13942:18:19", + "value": { + "name": "pos", + "nativeSrc": "13957:3:19", + "nodeType": "YulIdentifier", + "src": "13957:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "13942:11:19", + "nodeType": "YulIdentifier", + "src": "13942:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "13818:148:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13904:3:19", + "nodeType": "YulTypedName", + "src": "13904:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "13909:6:19", + "nodeType": "YulTypedName", + "src": "13909:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "13920:11:19", + "nodeType": "YulTypedName", + "src": "13920:11:19", + "type": "" + } + ], + "src": "13818:148:19" + }, + { + "body": { + "nativeSrc": "14082:280:19", + "nodeType": "YulBlock", + "src": "14082:280:19", + "statements": [ + { + "nativeSrc": "14092:53:19", + "nodeType": "YulVariableDeclaration", + "src": "14092:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14139:5:19", + "nodeType": "YulIdentifier", + "src": "14139:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "14106:32:19", + "nodeType": "YulIdentifier", + "src": "14106:32:19" + }, + "nativeSrc": "14106:39:19", + "nodeType": "YulFunctionCall", + "src": "14106:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "14096:6:19", + "nodeType": "YulTypedName", + "src": "14096:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "14154:96:19", + "nodeType": "YulAssignment", + "src": "14154:96:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14238:3:19", + "nodeType": "YulIdentifier", + "src": "14238:3:19" + }, + { + "name": "length", + "nativeSrc": "14243:6:19", + "nodeType": "YulIdentifier", + "src": "14243:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14161:76:19", + "nodeType": "YulIdentifier", + "src": "14161:76:19" + }, + "nativeSrc": "14161:89:19", + "nodeType": "YulFunctionCall", + "src": "14161:89:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14154:3:19", + "nodeType": "YulIdentifier", + "src": "14154:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14298:5:19", + "nodeType": "YulIdentifier", + "src": "14298:5:19" + }, + { + "kind": "number", + "nativeSrc": "14305:4:19", + "nodeType": "YulLiteral", + "src": "14305:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14294:3:19", + "nodeType": "YulIdentifier", + "src": "14294:3:19" + }, + "nativeSrc": "14294:16:19", + "nodeType": "YulFunctionCall", + "src": "14294:16:19" + }, + { + "name": "pos", + "nativeSrc": "14312:3:19", + "nodeType": "YulIdentifier", + "src": "14312:3:19" + }, + { + "name": "length", + "nativeSrc": "14317:6:19", + "nodeType": "YulIdentifier", + "src": "14317:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "14259:34:19", + "nodeType": "YulIdentifier", + "src": "14259:34:19" + }, + "nativeSrc": "14259:65:19", + "nodeType": "YulFunctionCall", + "src": "14259:65:19" + }, + "nativeSrc": "14259:65:19", + "nodeType": "YulExpressionStatement", + "src": "14259:65:19" + }, + { + "nativeSrc": "14333:23:19", + "nodeType": "YulAssignment", + "src": "14333:23:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14344:3:19", + "nodeType": "YulIdentifier", + "src": "14344:3:19" + }, + { + "name": "length", + "nativeSrc": "14349:6:19", + "nodeType": "YulIdentifier", + "src": "14349:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14340:3:19", + "nodeType": "YulIdentifier", + "src": "14340:3:19" + }, + "nativeSrc": "14340:16:19", + "nodeType": "YulFunctionCall", + "src": "14340:16:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14333:3:19", + "nodeType": "YulIdentifier", + "src": "14333:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "13972:390:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14063:5:19", + "nodeType": "YulTypedName", + "src": "14063:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14070:3:19", + "nodeType": "YulTypedName", + "src": "14070:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14078:3:19", + "nodeType": "YulTypedName", + "src": "14078:3:19", + "type": "" + } + ], + "src": "13972:390:19" + }, + { + "body": { + "nativeSrc": "14474:49:19", + "nodeType": "YulBlock", + "src": "14474:49:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14496:6:19", + "nodeType": "YulIdentifier", + "src": "14496:6:19" + }, + { + "kind": "number", + "nativeSrc": "14504:1:19", + "nodeType": "YulLiteral", + "src": "14504:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14492:3:19", + "nodeType": "YulIdentifier", + "src": "14492:3:19" + }, + "nativeSrc": "14492:14:19", + "nodeType": "YulFunctionCall", + "src": "14492:14:19" + }, + { + "hexValue": "2e6a736f6e", + "kind": "string", + "nativeSrc": "14508:7:19", + "nodeType": "YulLiteral", + "src": "14508:7:19", + "type": "", + "value": ".json" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14485:6:19", + "nodeType": "YulIdentifier", + "src": "14485:6:19" + }, + "nativeSrc": "14485:31:19", + "nodeType": "YulFunctionCall", + "src": "14485:31:19" + }, + "nativeSrc": "14485:31:19", + "nodeType": "YulExpressionStatement", + "src": "14485:31:19" + } + ] + }, + "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "nativeSrc": "14368:155:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "14466:6:19", + "nodeType": "YulTypedName", + "src": "14466:6:19", + "type": "" + } + ], + "src": "14368:155:19" + }, + { + "body": { + "nativeSrc": "14693:236:19", + "nodeType": "YulBlock", + "src": "14693:236:19", + "statements": [ + { + "nativeSrc": "14703:91:19", + "nodeType": "YulAssignment", + "src": "14703:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14787:3:19", + "nodeType": "YulIdentifier", + "src": "14787:3:19" + }, + { + "kind": "number", + "nativeSrc": "14792:1:19", + "nodeType": "YulLiteral", + "src": "14792:1:19", + "type": "", + "value": "5" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14710:76:19", + "nodeType": "YulIdentifier", + "src": "14710:76:19" + }, + "nativeSrc": "14710:84:19", + "nodeType": "YulFunctionCall", + "src": "14710:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14703:3:19", + "nodeType": "YulIdentifier", + "src": "14703:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14892:3:19", + "nodeType": "YulIdentifier", + "src": "14892:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "nativeSrc": "14803:88:19", + "nodeType": "YulIdentifier", + "src": "14803:88:19" + }, + "nativeSrc": "14803:93:19", + "nodeType": "YulFunctionCall", + "src": "14803:93:19" + }, + "nativeSrc": "14803:93:19", + "nodeType": "YulExpressionStatement", + "src": "14803:93:19" + }, + { + "nativeSrc": "14905:18:19", + "nodeType": "YulAssignment", + "src": "14905:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14916:3:19", + "nodeType": "YulIdentifier", + "src": "14916:3:19" + }, + { + "kind": "number", + "nativeSrc": "14921:1:19", + "nodeType": "YulLiteral", + "src": "14921:1:19", + "type": "", + "value": "5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14912:3:19", + "nodeType": "YulIdentifier", + "src": "14912:3:19" + }, + "nativeSrc": "14912:11:19", + "nodeType": "YulFunctionCall", + "src": "14912:11:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14905:3:19", + "nodeType": "YulIdentifier", + "src": "14905:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14529:400:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14681:3:19", + "nodeType": "YulTypedName", + "src": "14681:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14689:3:19", + "nodeType": "YulTypedName", + "src": "14689:3:19", + "type": "" + } + ], + "src": "14529:400:19" + }, + { + "body": { + "nativeSrc": "15172:304:19", + "nodeType": "YulBlock", + "src": "15172:304:19", + "statements": [ + { + "nativeSrc": "15183:102:19", + "nodeType": "YulAssignment", + "src": "15183:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15272:6:19", + "nodeType": "YulIdentifier", + "src": "15272:6:19" + }, + { + "name": "pos", + "nativeSrc": "15281:3:19", + "nodeType": "YulIdentifier", + "src": "15281:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15190:81:19", + "nodeType": "YulIdentifier", + "src": "15190:81:19" + }, + "nativeSrc": "15190:95:19", + "nodeType": "YulFunctionCall", + "src": "15190:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15183:3:19", + "nodeType": "YulIdentifier", + "src": "15183:3:19" + } + ] + }, + { + "nativeSrc": "15295:155:19", + "nodeType": "YulAssignment", + "src": "15295:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15446:3:19", + "nodeType": "YulIdentifier", + "src": "15446:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15302:142:19", + "nodeType": "YulIdentifier", + "src": "15302:142:19" + }, + "nativeSrc": "15302:148:19", + "nodeType": "YulFunctionCall", + "src": "15302:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15295:3:19", + "nodeType": "YulIdentifier", + "src": "15295:3:19" + } + ] + }, + { + "nativeSrc": "15460:10:19", + "nodeType": "YulAssignment", + "src": "15460:10:19", + "value": { + "name": "pos", + "nativeSrc": "15467:3:19", + "nodeType": "YulIdentifier", + "src": "15467:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15460:3:19", + "nodeType": "YulIdentifier", + "src": "15460:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "14935:541:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15151:3:19", + "nodeType": "YulTypedName", + "src": "15151:3:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15157:6:19", + "nodeType": "YulTypedName", + "src": "15157:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15168:3:19", + "nodeType": "YulTypedName", + "src": "15168:3:19", + "type": "" + } + ], + "src": "14935:541:19" + }, + { + "body": { + "nativeSrc": "15510:152:19", + "nodeType": "YulBlock", + "src": "15510:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15527:1:19", + "nodeType": "YulLiteral", + "src": "15527:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15530:77:19", + "nodeType": "YulLiteral", + "src": "15530:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15520:6:19", + "nodeType": "YulIdentifier", + "src": "15520:6:19" + }, + "nativeSrc": "15520:88:19", + "nodeType": "YulFunctionCall", + "src": "15520:88:19" + }, + "nativeSrc": "15520:88:19", + "nodeType": "YulExpressionStatement", + "src": "15520:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15624:1:19", + "nodeType": "YulLiteral", + "src": "15624:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "15627:4:19", + "nodeType": "YulLiteral", + "src": "15627:4:19", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15617:6:19", + "nodeType": "YulIdentifier", + "src": "15617:6:19" + }, + "nativeSrc": "15617:15:19", + "nodeType": "YulFunctionCall", + "src": "15617:15:19" + }, + "nativeSrc": "15617:15:19", + "nodeType": "YulExpressionStatement", + "src": "15617:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15648:1:19", + "nodeType": "YulLiteral", + "src": "15648:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15651:4:19", + "nodeType": "YulLiteral", + "src": "15651:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15641:6:19", + "nodeType": "YulIdentifier", + "src": "15641:6:19" + }, + "nativeSrc": "15641:15:19", + "nodeType": "YulFunctionCall", + "src": "15641:15:19" + }, + "nativeSrc": "15641:15:19", + "nodeType": "YulExpressionStatement", + "src": "15641:15:19" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "15482:180:19", + "nodeType": "YulFunctionDefinition", + "src": "15482:180:19" + }, + { + "body": { + "nativeSrc": "15722:87:19", + "nodeType": "YulBlock", + "src": "15722:87:19", + "statements": [ + { + "nativeSrc": "15732:11:19", + "nodeType": "YulAssignment", + "src": "15732:11:19", + "value": { + "name": "ptr", + "nativeSrc": "15740:3:19", + "nodeType": "YulIdentifier", + "src": "15740:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "15732:4:19", + "nodeType": "YulIdentifier", + "src": "15732:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15760:1:19", + "nodeType": "YulLiteral", + "src": "15760:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "15763:3:19", + "nodeType": "YulIdentifier", + "src": "15763:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15753:6:19", + "nodeType": "YulIdentifier", + "src": "15753:6:19" + }, + "nativeSrc": "15753:14:19", + "nodeType": "YulFunctionCall", + "src": "15753:14:19" + }, + "nativeSrc": "15753:14:19", + "nodeType": "YulExpressionStatement", + "src": "15753:14:19" + }, + { + "nativeSrc": "15776:26:19", + "nodeType": "YulAssignment", + "src": "15776:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15794:1:19", + "nodeType": "YulLiteral", + "src": "15794:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15797:4:19", + "nodeType": "YulLiteral", + "src": "15797:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "15784:9:19", + "nodeType": "YulIdentifier", + "src": "15784:9:19" + }, + "nativeSrc": "15784:18:19", + "nodeType": "YulFunctionCall", + "src": "15784:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "15776:4:19", + "nodeType": "YulIdentifier", + "src": "15776:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "15668:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "15709:3:19", + "nodeType": "YulTypedName", + "src": "15709:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "15717:4:19", + "nodeType": "YulTypedName", + "src": "15717:4:19", + "type": "" + } + ], + "src": "15668:141:19" + }, + { + "body": { + "nativeSrc": "15859:49:19", + "nodeType": "YulBlock", + "src": "15859:49:19", + "statements": [ + { + "nativeSrc": "15869:33:19", + "nodeType": "YulAssignment", + "src": "15869:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15887:5:19", + "nodeType": "YulIdentifier", + "src": "15887:5:19" + }, + { + "kind": "number", + "nativeSrc": "15894:2:19", + "nodeType": "YulLiteral", + "src": "15894:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15883:3:19", + "nodeType": "YulIdentifier", + "src": "15883:3:19" + }, + "nativeSrc": "15883:14:19", + "nodeType": "YulFunctionCall", + "src": "15883:14:19" + }, + { + "kind": "number", + "nativeSrc": "15899:2:19", + "nodeType": "YulLiteral", + "src": "15899:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "15879:3:19", + "nodeType": "YulIdentifier", + "src": "15879:3:19" + }, + "nativeSrc": "15879:23:19", + "nodeType": "YulFunctionCall", + "src": "15879:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "15869:6:19", + "nodeType": "YulIdentifier", + "src": "15869:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "15815:93:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "15842:5:19", + "nodeType": "YulTypedName", + "src": "15842:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "15852:6:19", + "nodeType": "YulTypedName", + "src": "15852:6:19", + "type": "" + } + ], + "src": "15815:93:19" + }, + { + "body": { + "nativeSrc": "15967:54:19", + "nodeType": "YulBlock", + "src": "15967:54:19", + "statements": [ + { + "nativeSrc": "15977:37:19", + "nodeType": "YulAssignment", + "src": "15977:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "16002:4:19", + "nodeType": "YulIdentifier", + "src": "16002:4:19" + }, + { + "name": "value", + "nativeSrc": "16008:5:19", + "nodeType": "YulIdentifier", + "src": "16008:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15998:3:19", + "nodeType": "YulIdentifier", + "src": "15998:3:19" + }, + "nativeSrc": "15998:16:19", + "nodeType": "YulFunctionCall", + "src": "15998:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "15977:8:19", + "nodeType": "YulIdentifier", + "src": "15977:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "15914:107:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "15942:4:19", + "nodeType": "YulTypedName", + "src": "15942:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "15948:5:19", + "nodeType": "YulTypedName", + "src": "15948:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "15958:8:19", + "nodeType": "YulTypedName", + "src": "15958:8:19", + "type": "" + } + ], + "src": "15914:107:19" + }, + { + "body": { + "nativeSrc": "16103:317:19", + "nodeType": "YulBlock", + "src": "16103:317:19", + "statements": [ + { + "nativeSrc": "16113:35:19", + "nodeType": "YulVariableDeclaration", + "src": "16113:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "16134:10:19", + "nodeType": "YulIdentifier", + "src": "16134:10:19" + }, + { + "kind": "number", + "nativeSrc": "16146:1:19", + "nodeType": "YulLiteral", + "src": "16146:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "16130:3:19", + "nodeType": "YulIdentifier", + "src": "16130:3:19" + }, + "nativeSrc": "16130:18:19", + "nodeType": "YulFunctionCall", + "src": "16130:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "16117:9:19", + "nodeType": "YulTypedName", + "src": "16117:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "16157:109:19", + "nodeType": "YulVariableDeclaration", + "src": "16157:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16188:9:19", + "nodeType": "YulIdentifier", + "src": "16188:9:19" + }, + { + "kind": "number", + "nativeSrc": "16199:66:19", + "nodeType": "YulLiteral", + "src": "16199:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16169:18:19", + "nodeType": "YulIdentifier", + "src": "16169:18:19" + }, + "nativeSrc": "16169:97:19", + "nodeType": "YulFunctionCall", + "src": "16169:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "16161:4:19", + "nodeType": "YulTypedName", + "src": "16161:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "16275:51:19", + "nodeType": "YulAssignment", + "src": "16275:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16306:9:19", + "nodeType": "YulIdentifier", + "src": "16306:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "16317:8:19", + "nodeType": "YulIdentifier", + "src": "16317:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16287:18:19", + "nodeType": "YulIdentifier", + "src": "16287:18:19" + }, + "nativeSrc": "16287:39:19", + "nodeType": "YulFunctionCall", + "src": "16287:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "16275:8:19", + "nodeType": "YulIdentifier", + "src": "16275:8:19" + } + ] + }, + { + "nativeSrc": "16335:30:19", + "nodeType": "YulAssignment", + "src": "16335:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16348:5:19", + "nodeType": "YulIdentifier", + "src": "16348:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "16359:4:19", + "nodeType": "YulIdentifier", + "src": "16359:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "16355:3:19", + "nodeType": "YulIdentifier", + "src": "16355:3:19" + }, + "nativeSrc": "16355:9:19", + "nodeType": "YulFunctionCall", + "src": "16355:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16344:3:19", + "nodeType": "YulIdentifier", + "src": "16344:3:19" + }, + "nativeSrc": "16344:21:19", + "nodeType": "YulFunctionCall", + "src": "16344:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "16335:5:19", + "nodeType": "YulIdentifier", + "src": "16335:5:19" + } + ] + }, + { + "nativeSrc": "16374:40:19", + "nodeType": "YulAssignment", + "src": "16374:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16387:5:19", + "nodeType": "YulIdentifier", + "src": "16387:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "16398:8:19", + "nodeType": "YulIdentifier", + "src": "16398:8:19" + }, + { + "name": "mask", + "nativeSrc": "16408:4:19", + "nodeType": "YulIdentifier", + "src": "16408:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16394:3:19", + "nodeType": "YulIdentifier", + "src": "16394:3:19" + }, + "nativeSrc": "16394:19:19", + "nodeType": "YulFunctionCall", + "src": "16394:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "16384:2:19", + "nodeType": "YulIdentifier", + "src": "16384:2:19" + }, + "nativeSrc": "16384:30:19", + "nodeType": "YulFunctionCall", + "src": "16384:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "16374:6:19", + "nodeType": "YulIdentifier", + "src": "16374:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "16027:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16064:5:19", + "nodeType": "YulTypedName", + "src": "16064:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "16071:10:19", + "nodeType": "YulTypedName", + "src": "16071:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "16083:8:19", + "nodeType": "YulTypedName", + "src": "16083:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "16096:6:19", + "nodeType": "YulTypedName", + "src": "16096:6:19", + "type": "" + } + ], + "src": "16027:393:19" + }, + { + "body": { + "nativeSrc": "16458:28:19", + "nodeType": "YulBlock", + "src": "16458:28:19", + "statements": [ + { + "nativeSrc": "16468:12:19", + "nodeType": "YulAssignment", + "src": "16468:12:19", + "value": { + "name": "value", + "nativeSrc": "16475:5:19", + "nodeType": "YulIdentifier", + "src": "16475:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "16468:3:19", + "nodeType": "YulIdentifier", + "src": "16468:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "16426:60:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16444:5:19", + "nodeType": "YulTypedName", + "src": "16444:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "16454:3:19", + "nodeType": "YulTypedName", + "src": "16454:3:19", + "type": "" + } + ], + "src": "16426:60:19" + }, + { + "body": { + "nativeSrc": "16552:82:19", + "nodeType": "YulBlock", + "src": "16552:82:19", + "statements": [ + { + "nativeSrc": "16562:66:19", + "nodeType": "YulAssignment", + "src": "16562:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "16620:5:19", + "nodeType": "YulIdentifier", + "src": "16620:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16602:17:19", + "nodeType": "YulIdentifier", + "src": "16602:17:19" + }, + "nativeSrc": "16602:24:19", + "nodeType": "YulFunctionCall", + "src": "16602:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "16593:8:19", + "nodeType": "YulIdentifier", + "src": "16593:8:19" + }, + "nativeSrc": "16593:34:19", + "nodeType": "YulFunctionCall", + "src": "16593:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16575:17:19", + "nodeType": "YulIdentifier", + "src": "16575:17:19" + }, + "nativeSrc": "16575:53:19", + "nodeType": "YulFunctionCall", + "src": "16575:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "16562:9:19", + "nodeType": "YulIdentifier", + "src": "16562:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "16492:142:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16532:5:19", + "nodeType": "YulTypedName", + "src": "16532:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "16542:9:19", + "nodeType": "YulTypedName", + "src": "16542:9:19", + "type": "" + } + ], + "src": "16492:142:19" + }, + { + "body": { + "nativeSrc": "16687:28:19", + "nodeType": "YulBlock", + "src": "16687:28:19", + "statements": [ + { + "nativeSrc": "16697:12:19", + "nodeType": "YulAssignment", + "src": "16697:12:19", + "value": { + "name": "value", + "nativeSrc": "16704:5:19", + "nodeType": "YulIdentifier", + "src": "16704:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "16697:3:19", + "nodeType": "YulIdentifier", + "src": "16697:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "16640:75:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16673:5:19", + "nodeType": "YulTypedName", + "src": "16673:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "16683:3:19", + "nodeType": "YulTypedName", + "src": "16683:3:19", + "type": "" + } + ], + "src": "16640:75:19" + }, + { + "body": { + "nativeSrc": "16797:193:19", + "nodeType": "YulBlock", + "src": "16797:193:19", + "statements": [ + { + "nativeSrc": "16807:63:19", + "nodeType": "YulVariableDeclaration", + "src": "16807:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "16862:7:19", + "nodeType": "YulIdentifier", + "src": "16862:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "16831:30:19", + "nodeType": "YulIdentifier", + "src": "16831:30:19" + }, + "nativeSrc": "16831:39:19", + "nodeType": "YulFunctionCall", + "src": "16831:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "16811:16:19", + "nodeType": "YulTypedName", + "src": "16811:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "16886:4:19", + "nodeType": "YulIdentifier", + "src": "16886:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "16926:4:19", + "nodeType": "YulIdentifier", + "src": "16926:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "16920:5:19", + "nodeType": "YulIdentifier", + "src": "16920:5:19" + }, + "nativeSrc": "16920:11:19", + "nodeType": "YulFunctionCall", + "src": "16920:11:19" + }, + { + "name": "offset", + "nativeSrc": "16933:6:19", + "nodeType": "YulIdentifier", + "src": "16933:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "16965:16:19", + "nodeType": "YulIdentifier", + "src": "16965:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "16941:23:19", + "nodeType": "YulIdentifier", + "src": "16941:23:19" + }, + "nativeSrc": "16941:41:19", + "nodeType": "YulFunctionCall", + "src": "16941:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "16892:27:19", + "nodeType": "YulIdentifier", + "src": "16892:27:19" + }, + "nativeSrc": "16892:91:19", + "nodeType": "YulFunctionCall", + "src": "16892:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "16879:6:19", + "nodeType": "YulIdentifier", + "src": "16879:6:19" + }, + "nativeSrc": "16879:105:19", + "nodeType": "YulFunctionCall", + "src": "16879:105:19" + }, + "nativeSrc": "16879:105:19", + "nodeType": "YulExpressionStatement", + "src": "16879:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "16721:269:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "16774:4:19", + "nodeType": "YulTypedName", + "src": "16774:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "16780:6:19", + "nodeType": "YulTypedName", + "src": "16780:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "16788:7:19", + "nodeType": "YulTypedName", + "src": "16788:7:19", + "type": "" + } + ], + "src": "16721:269:19" + }, + { + "body": { + "nativeSrc": "17045:24:19", + "nodeType": "YulBlock", + "src": "17045:24:19", + "statements": [ + { + "nativeSrc": "17055:8:19", + "nodeType": "YulAssignment", + "src": "17055:8:19", + "value": { + "kind": "number", + "nativeSrc": "17062:1:19", + "nodeType": "YulLiteral", + "src": "17062:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "17055:3:19", + "nodeType": "YulIdentifier", + "src": "17055:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "16996:73:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "17041:3:19", + "nodeType": "YulTypedName", + "src": "17041:3:19", + "type": "" + } + ], + "src": "16996:73:19" + }, + { + "body": { + "nativeSrc": "17128:136:19", + "nodeType": "YulBlock", + "src": "17128:136:19", + "statements": [ + { + "nativeSrc": "17138:46:19", + "nodeType": "YulVariableDeclaration", + "src": "17138:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "17152:30:19", + "nodeType": "YulIdentifier", + "src": "17152:30:19" + }, + "nativeSrc": "17152:32:19", + "nodeType": "YulFunctionCall", + "src": "17152:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "17142:6:19", + "nodeType": "YulTypedName", + "src": "17142:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17237:4:19", + "nodeType": "YulIdentifier", + "src": "17237:4:19" + }, + { + "name": "offset", + "nativeSrc": "17243:6:19", + "nodeType": "YulIdentifier", + "src": "17243:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "17251:6:19", + "nodeType": "YulIdentifier", + "src": "17251:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "17193:43:19", + "nodeType": "YulIdentifier", + "src": "17193:43:19" + }, + "nativeSrc": "17193:65:19", + "nodeType": "YulFunctionCall", + "src": "17193:65:19" + }, + "nativeSrc": "17193:65:19", + "nodeType": "YulExpressionStatement", + "src": "17193:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "17075:189:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "17114:4:19", + "nodeType": "YulTypedName", + "src": "17114:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "17120:6:19", + "nodeType": "YulTypedName", + "src": "17120:6:19", + "type": "" + } + ], + "src": "17075:189:19" + }, + { + "body": { + "nativeSrc": "17320:136:19", + "nodeType": "YulBlock", + "src": "17320:136:19", + "statements": [ + { + "body": { + "nativeSrc": "17387:63:19", + "nodeType": "YulBlock", + "src": "17387:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17431:5:19", + "nodeType": "YulIdentifier", + "src": "17431:5:19" + }, + { + "kind": "number", + "nativeSrc": "17438:1:19", + "nodeType": "YulLiteral", + "src": "17438:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "17401:29:19", + "nodeType": "YulIdentifier", + "src": "17401:29:19" + }, + "nativeSrc": "17401:39:19", + "nodeType": "YulFunctionCall", + "src": "17401:39:19" + }, + "nativeSrc": "17401:39:19", + "nodeType": "YulExpressionStatement", + "src": "17401:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17340:5:19", + "nodeType": "YulIdentifier", + "src": "17340:5:19" + }, + { + "name": "end", + "nativeSrc": "17347:3:19", + "nodeType": "YulIdentifier", + "src": "17347:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17337:2:19", + "nodeType": "YulIdentifier", + "src": "17337:2:19" + }, + "nativeSrc": "17337:14:19", + "nodeType": "YulFunctionCall", + "src": "17337:14:19" + }, + "nativeSrc": "17330:120:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "17352:26:19", + "nodeType": "YulBlock", + "src": "17352:26:19", + "statements": [ + { + "nativeSrc": "17354:22:19", + "nodeType": "YulAssignment", + "src": "17354:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17367:5:19", + "nodeType": "YulIdentifier", + "src": "17367:5:19" + }, + { + "kind": "number", + "nativeSrc": "17374:1:19", + "nodeType": "YulLiteral", + "src": "17374:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17363:3:19", + "nodeType": "YulIdentifier", + "src": "17363:3:19" + }, + "nativeSrc": "17363:13:19", + "nodeType": "YulFunctionCall", + "src": "17363:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "17354:5:19", + "nodeType": "YulIdentifier", + "src": "17354:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "17334:2:19", + "nodeType": "YulBlock", + "src": "17334:2:19", + "statements": [] + }, + "src": "17330:120:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "17270:186:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "17308:5:19", + "nodeType": "YulTypedName", + "src": "17308:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17315:3:19", + "nodeType": "YulTypedName", + "src": "17315:3:19", + "type": "" + } + ], + "src": "17270:186:19" + }, + { + "body": { + "nativeSrc": "17541:464:19", + "nodeType": "YulBlock", + "src": "17541:464:19", + "statements": [ + { + "body": { + "nativeSrc": "17567:431:19", + "nodeType": "YulBlock", + "src": "17567:431:19", + "statements": [ + { + "nativeSrc": "17581:54:19", + "nodeType": "YulVariableDeclaration", + "src": "17581:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "17629:5:19", + "nodeType": "YulIdentifier", + "src": "17629:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "17597:31:19", + "nodeType": "YulIdentifier", + "src": "17597:31:19" + }, + "nativeSrc": "17597:38:19", + "nodeType": "YulFunctionCall", + "src": "17597:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "17585:8:19", + "nodeType": "YulTypedName", + "src": "17585:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "17648:63:19", + "nodeType": "YulVariableDeclaration", + "src": "17648:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "17671:8:19", + "nodeType": "YulIdentifier", + "src": "17671:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17699:10:19", + "nodeType": "YulIdentifier", + "src": "17699:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "17681:17:19", + "nodeType": "YulIdentifier", + "src": "17681:17:19" + }, + "nativeSrc": "17681:29:19", + "nodeType": "YulFunctionCall", + "src": "17681:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17667:3:19", + "nodeType": "YulIdentifier", + "src": "17667:3:19" + }, + "nativeSrc": "17667:44:19", + "nodeType": "YulFunctionCall", + "src": "17667:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "17652:11:19", + "nodeType": "YulTypedName", + "src": "17652:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17868:27:19", + "nodeType": "YulBlock", + "src": "17868:27:19", + "statements": [ + { + "nativeSrc": "17870:23:19", + "nodeType": "YulAssignment", + "src": "17870:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "17885:8:19", + "nodeType": "YulIdentifier", + "src": "17885:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "17870:11:19", + "nodeType": "YulIdentifier", + "src": "17870:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17852:10:19", + "nodeType": "YulIdentifier", + "src": "17852:10:19" + }, + { + "kind": "number", + "nativeSrc": "17864:2:19", + "nodeType": "YulLiteral", + "src": "17864:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17849:2:19", + "nodeType": "YulIdentifier", + "src": "17849:2:19" + }, + "nativeSrc": "17849:18:19", + "nodeType": "YulFunctionCall", + "src": "17849:18:19" + }, + "nativeSrc": "17846:49:19", + "nodeType": "YulIf", + "src": "17846:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "17937:11:19", + "nodeType": "YulIdentifier", + "src": "17937:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "17954:8:19", + "nodeType": "YulIdentifier", + "src": "17954:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "17982:3:19", + "nodeType": "YulIdentifier", + "src": "17982:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "17964:17:19", + "nodeType": "YulIdentifier", + "src": "17964:17:19" + }, + "nativeSrc": "17964:22:19", + "nodeType": "YulFunctionCall", + "src": "17964:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17950:3:19", + "nodeType": "YulIdentifier", + "src": "17950:3:19" + }, + "nativeSrc": "17950:37:19", + "nodeType": "YulFunctionCall", + "src": "17950:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "17908:28:19", + "nodeType": "YulIdentifier", + "src": "17908:28:19" + }, + "nativeSrc": "17908:80:19", + "nodeType": "YulFunctionCall", + "src": "17908:80:19" + }, + "nativeSrc": "17908:80:19", + "nodeType": "YulExpressionStatement", + "src": "17908:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "17558:3:19", + "nodeType": "YulIdentifier", + "src": "17558:3:19" + }, + { + "kind": "number", + "nativeSrc": "17563:2:19", + "nodeType": "YulLiteral", + "src": "17563:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17555:2:19", + "nodeType": "YulIdentifier", + "src": "17555:2:19" + }, + "nativeSrc": "17555:11:19", + "nodeType": "YulFunctionCall", + "src": "17555:11:19" + }, + "nativeSrc": "17552:446:19", + "nodeType": "YulIf", + "src": "17552:446:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "17462:543:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "17517:5:19", + "nodeType": "YulTypedName", + "src": "17517:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "17524:3:19", + "nodeType": "YulTypedName", + "src": "17524:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "17529:10:19", + "nodeType": "YulTypedName", + "src": "17529:10:19", + "type": "" + } + ], + "src": "17462:543:19" + }, + { + "body": { + "nativeSrc": "18074:54:19", + "nodeType": "YulBlock", + "src": "18074:54:19", + "statements": [ + { + "nativeSrc": "18084:37:19", + "nodeType": "YulAssignment", + "src": "18084:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "18109:4:19", + "nodeType": "YulIdentifier", + "src": "18109:4:19" + }, + { + "name": "value", + "nativeSrc": "18115:5:19", + "nodeType": "YulIdentifier", + "src": "18115:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18105:3:19", + "nodeType": "YulIdentifier", + "src": "18105:3:19" + }, + "nativeSrc": "18105:16:19", + "nodeType": "YulFunctionCall", + "src": "18105:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "18084:8:19", + "nodeType": "YulIdentifier", + "src": "18084:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18011:117:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "18049:4:19", + "nodeType": "YulTypedName", + "src": "18049:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "18055:5:19", + "nodeType": "YulTypedName", + "src": "18055:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "18065:8:19", + "nodeType": "YulTypedName", + "src": "18065:8:19", + "type": "" + } + ], + "src": "18011:117:19" + }, + { + "body": { + "nativeSrc": "18185:118:19", + "nodeType": "YulBlock", + "src": "18185:118:19", + "statements": [ + { + "nativeSrc": "18195:68:19", + "nodeType": "YulVariableDeclaration", + "src": "18195:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18244:1:19", + "nodeType": "YulLiteral", + "src": "18244:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "18247:5:19", + "nodeType": "YulIdentifier", + "src": "18247:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "18240:3:19", + "nodeType": "YulIdentifier", + "src": "18240:3:19" + }, + "nativeSrc": "18240:13:19", + "nodeType": "YulFunctionCall", + "src": "18240:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18259:1:19", + "nodeType": "YulLiteral", + "src": "18259:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18255:3:19", + "nodeType": "YulIdentifier", + "src": "18255:3:19" + }, + "nativeSrc": "18255:6:19", + "nodeType": "YulFunctionCall", + "src": "18255:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18211:28:19", + "nodeType": "YulIdentifier", + "src": "18211:28:19" + }, + "nativeSrc": "18211:51:19", + "nodeType": "YulFunctionCall", + "src": "18211:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18207:3:19", + "nodeType": "YulIdentifier", + "src": "18207:3:19" + }, + "nativeSrc": "18207:56:19", + "nodeType": "YulFunctionCall", + "src": "18207:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "18199:4:19", + "nodeType": "YulTypedName", + "src": "18199:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "18272:25:19", + "nodeType": "YulAssignment", + "src": "18272:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18286:4:19", + "nodeType": "YulIdentifier", + "src": "18286:4:19" + }, + { + "name": "mask", + "nativeSrc": "18292:4:19", + "nodeType": "YulIdentifier", + "src": "18292:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18282:3:19", + "nodeType": "YulIdentifier", + "src": "18282:3:19" + }, + "nativeSrc": "18282:15:19", + "nodeType": "YulFunctionCall", + "src": "18282:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18272:6:19", + "nodeType": "YulIdentifier", + "src": "18272:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "18134:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18162:4:19", + "nodeType": "YulTypedName", + "src": "18162:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "18168:5:19", + "nodeType": "YulTypedName", + "src": "18168:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "18178:6:19", + "nodeType": "YulTypedName", + "src": "18178:6:19", + "type": "" + } + ], + "src": "18134:169:19" + }, + { + "body": { + "nativeSrc": "18389:214:19", + "nodeType": "YulBlock", + "src": "18389:214:19", + "statements": [ + { + "nativeSrc": "18522:37:19", + "nodeType": "YulAssignment", + "src": "18522:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18549:4:19", + "nodeType": "YulIdentifier", + "src": "18549:4:19" + }, + { + "name": "len", + "nativeSrc": "18555:3:19", + "nodeType": "YulIdentifier", + "src": "18555:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "18530:18:19", + "nodeType": "YulIdentifier", + "src": "18530:18:19" + }, + "nativeSrc": "18530:29:19", + "nodeType": "YulFunctionCall", + "src": "18530:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "18522:4:19", + "nodeType": "YulIdentifier", + "src": "18522:4:19" + } + ] + }, + { + "nativeSrc": "18568:29:19", + "nodeType": "YulAssignment", + "src": "18568:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18579:4:19", + "nodeType": "YulIdentifier", + "src": "18579:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18589:1:19", + "nodeType": "YulLiteral", + "src": "18589:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "18592:3:19", + "nodeType": "YulIdentifier", + "src": "18592:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "18585:3:19", + "nodeType": "YulIdentifier", + "src": "18585:3:19" + }, + "nativeSrc": "18585:11:19", + "nodeType": "YulFunctionCall", + "src": "18585:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "18576:2:19", + "nodeType": "YulIdentifier", + "src": "18576:2:19" + }, + "nativeSrc": "18576:21:19", + "nodeType": "YulFunctionCall", + "src": "18576:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "18568:4:19", + "nodeType": "YulIdentifier", + "src": "18568:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "18308:295:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18370:4:19", + "nodeType": "YulTypedName", + "src": "18370:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "18376:3:19", + "nodeType": "YulTypedName", + "src": "18376:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "18384:4:19", + "nodeType": "YulTypedName", + "src": "18384:4:19", + "type": "" + } + ], + "src": "18308:295:19" + }, + { + "body": { + "nativeSrc": "18700:1303:19", + "nodeType": "YulBlock", + "src": "18700:1303:19", + "statements": [ + { + "nativeSrc": "18711:51:19", + "nodeType": "YulVariableDeclaration", + "src": "18711:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "18758:3:19", + "nodeType": "YulIdentifier", + "src": "18758:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "18725:32:19", + "nodeType": "YulIdentifier", + "src": "18725:32:19" + }, + "nativeSrc": "18725:37:19", + "nodeType": "YulFunctionCall", + "src": "18725:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "18715:6:19", + "nodeType": "YulTypedName", + "src": "18715:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18847:22:19", + "nodeType": "YulBlock", + "src": "18847:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "18849:16:19", + "nodeType": "YulIdentifier", + "src": "18849:16:19" + }, + "nativeSrc": "18849:18:19", + "nodeType": "YulFunctionCall", + "src": "18849:18:19" + }, + "nativeSrc": "18849:18:19", + "nodeType": "YulExpressionStatement", + "src": "18849:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18819:6:19", + "nodeType": "YulIdentifier", + "src": "18819:6:19" + }, + { + "kind": "number", + "nativeSrc": "18827:18:19", + "nodeType": "YulLiteral", + "src": "18827:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18816:2:19", + "nodeType": "YulIdentifier", + "src": "18816:2:19" + }, + "nativeSrc": "18816:30:19", + "nodeType": "YulFunctionCall", + "src": "18816:30:19" + }, + "nativeSrc": "18813:56:19", + "nodeType": "YulIf", + "src": "18813:56:19" + }, + { + "nativeSrc": "18879:52:19", + "nodeType": "YulVariableDeclaration", + "src": "18879:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18925:4:19", + "nodeType": "YulIdentifier", + "src": "18925:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "18919:5:19", + "nodeType": "YulIdentifier", + "src": "18919:5:19" + }, + "nativeSrc": "18919:11:19", + "nodeType": "YulFunctionCall", + "src": "18919:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "18893:25:19", + "nodeType": "YulIdentifier", + "src": "18893:25:19" + }, + "nativeSrc": "18893:38:19", + "nodeType": "YulFunctionCall", + "src": "18893:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "18883:6:19", + "nodeType": "YulTypedName", + "src": "18883:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19024:4:19", + "nodeType": "YulIdentifier", + "src": "19024:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "19030:6:19", + "nodeType": "YulIdentifier", + "src": "19030:6:19" + }, + { + "name": "newLen", + "nativeSrc": "19038:6:19", + "nodeType": "YulIdentifier", + "src": "19038:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "18978:45:19", + "nodeType": "YulIdentifier", + "src": "18978:45:19" + }, + "nativeSrc": "18978:67:19", + "nodeType": "YulFunctionCall", + "src": "18978:67:19" + }, + "nativeSrc": "18978:67:19", + "nodeType": "YulExpressionStatement", + "src": "18978:67:19" + }, + { + "nativeSrc": "19055:18:19", + "nodeType": "YulVariableDeclaration", + "src": "19055:18:19", + "value": { + "kind": "number", + "nativeSrc": "19072:1:19", + "nodeType": "YulLiteral", + "src": "19072:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "19059:9:19", + "nodeType": "YulTypedName", + "src": "19059:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19083:17:19", + "nodeType": "YulAssignment", + "src": "19083:17:19", + "value": { + "kind": "number", + "nativeSrc": "19096:4:19", + "nodeType": "YulLiteral", + "src": "19096:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19083:9:19", + "nodeType": "YulIdentifier", + "src": "19083:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "19147:611:19", + "nodeType": "YulBlock", + "src": "19147:611:19", + "statements": [ + { + "nativeSrc": "19161:37:19", + "nodeType": "YulVariableDeclaration", + "src": "19161:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19180:6:19", + "nodeType": "YulIdentifier", + "src": "19180:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19192:4:19", + "nodeType": "YulLiteral", + "src": "19192:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19188:3:19", + "nodeType": "YulIdentifier", + "src": "19188:3:19" + }, + "nativeSrc": "19188:9:19", + "nodeType": "YulFunctionCall", + "src": "19188:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19176:3:19", + "nodeType": "YulIdentifier", + "src": "19176:3:19" + }, + "nativeSrc": "19176:22:19", + "nodeType": "YulFunctionCall", + "src": "19176:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "19165:7:19", + "nodeType": "YulTypedName", + "src": "19165:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19212:51:19", + "nodeType": "YulVariableDeclaration", + "src": "19212:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19258:4:19", + "nodeType": "YulIdentifier", + "src": "19258:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "19226:31:19", + "nodeType": "YulIdentifier", + "src": "19226:31:19" + }, + "nativeSrc": "19226:37:19", + "nodeType": "YulFunctionCall", + "src": "19226:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "19216:6:19", + "nodeType": "YulTypedName", + "src": "19216:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19276:10:19", + "nodeType": "YulVariableDeclaration", + "src": "19276:10:19", + "value": { + "kind": "number", + "nativeSrc": "19285:1:19", + "nodeType": "YulLiteral", + "src": "19285:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "19280:1:19", + "nodeType": "YulTypedName", + "src": "19280:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19344:163:19", + "nodeType": "YulBlock", + "src": "19344:163:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19369:6:19", + "nodeType": "YulIdentifier", + "src": "19369:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19387:3:19", + "nodeType": "YulIdentifier", + "src": "19387:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "19392:9:19", + "nodeType": "YulIdentifier", + "src": "19392:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19383:3:19", + "nodeType": "YulIdentifier", + "src": "19383:3:19" + }, + "nativeSrc": "19383:19:19", + "nodeType": "YulFunctionCall", + "src": "19383:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19377:5:19", + "nodeType": "YulIdentifier", + "src": "19377:5:19" + }, + "nativeSrc": "19377:26:19", + "nodeType": "YulFunctionCall", + "src": "19377:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19362:6:19", + "nodeType": "YulIdentifier", + "src": "19362:6:19" + }, + "nativeSrc": "19362:42:19", + "nodeType": "YulFunctionCall", + "src": "19362:42:19" + }, + "nativeSrc": "19362:42:19", + "nodeType": "YulExpressionStatement", + "src": "19362:42:19" + }, + { + "nativeSrc": "19421:24:19", + "nodeType": "YulAssignment", + "src": "19421:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19435:6:19", + "nodeType": "YulIdentifier", + "src": "19435:6:19" + }, + { + "kind": "number", + "nativeSrc": "19443:1:19", + "nodeType": "YulLiteral", + "src": "19443:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19431:3:19", + "nodeType": "YulIdentifier", + "src": "19431:3:19" + }, + "nativeSrc": "19431:14:19", + "nodeType": "YulFunctionCall", + "src": "19431:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "19421:6:19", + "nodeType": "YulIdentifier", + "src": "19421:6:19" + } + ] + }, + { + "nativeSrc": "19462:31:19", + "nodeType": "YulAssignment", + "src": "19462:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "19479:9:19", + "nodeType": "YulIdentifier", + "src": "19479:9:19" + }, + { + "kind": "number", + "nativeSrc": "19490:2:19", + "nodeType": "YulLiteral", + "src": "19490:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19475:3:19", + "nodeType": "YulIdentifier", + "src": "19475:3:19" + }, + "nativeSrc": "19475:18:19", + "nodeType": "YulFunctionCall", + "src": "19475:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19462:9:19", + "nodeType": "YulIdentifier", + "src": "19462:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "19310:1:19", + "nodeType": "YulIdentifier", + "src": "19310:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "19313:7:19", + "nodeType": "YulIdentifier", + "src": "19313:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19307:2:19", + "nodeType": "YulIdentifier", + "src": "19307:2:19" + }, + "nativeSrc": "19307:14:19", + "nodeType": "YulFunctionCall", + "src": "19307:14:19" + }, + "nativeSrc": "19299:208:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "19322:21:19", + "nodeType": "YulBlock", + "src": "19322:21:19", + "statements": [ + { + "nativeSrc": "19324:17:19", + "nodeType": "YulAssignment", + "src": "19324:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "19333:1:19", + "nodeType": "YulIdentifier", + "src": "19333:1:19" + }, + { + "kind": "number", + "nativeSrc": "19336:4:19", + "nodeType": "YulLiteral", + "src": "19336:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19329:3:19", + "nodeType": "YulIdentifier", + "src": "19329:3:19" + }, + "nativeSrc": "19329:12:19", + "nodeType": "YulFunctionCall", + "src": "19329:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "19324:1:19", + "nodeType": "YulIdentifier", + "src": "19324:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "19303:3:19", + "nodeType": "YulBlock", + "src": "19303:3:19", + "statements": [] + }, + "src": "19299:208:19" + }, + { + "body": { + "nativeSrc": "19543:156:19", + "nodeType": "YulBlock", + "src": "19543:156:19", + "statements": [ + { + "nativeSrc": "19561:43:19", + "nodeType": "YulVariableDeclaration", + "src": "19561:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19588:3:19", + "nodeType": "YulIdentifier", + "src": "19588:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "19593:9:19", + "nodeType": "YulIdentifier", + "src": "19593:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19584:3:19", + "nodeType": "YulIdentifier", + "src": "19584:3:19" + }, + "nativeSrc": "19584:19:19", + "nodeType": "YulFunctionCall", + "src": "19584:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19578:5:19", + "nodeType": "YulIdentifier", + "src": "19578:5:19" + }, + "nativeSrc": "19578:26:19", + "nodeType": "YulFunctionCall", + "src": "19578:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "19565:9:19", + "nodeType": "YulTypedName", + "src": "19565:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19628:6:19", + "nodeType": "YulIdentifier", + "src": "19628:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "19655:9:19", + "nodeType": "YulIdentifier", + "src": "19655:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19670:6:19", + "nodeType": "YulIdentifier", + "src": "19670:6:19" + }, + { + "kind": "number", + "nativeSrc": "19678:4:19", + "nodeType": "YulLiteral", + "src": "19678:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19666:3:19", + "nodeType": "YulIdentifier", + "src": "19666:3:19" + }, + "nativeSrc": "19666:17:19", + "nodeType": "YulFunctionCall", + "src": "19666:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "19636:18:19", + "nodeType": "YulIdentifier", + "src": "19636:18:19" + }, + "nativeSrc": "19636:48:19", + "nodeType": "YulFunctionCall", + "src": "19636:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19621:6:19", + "nodeType": "YulIdentifier", + "src": "19621:6:19" + }, + "nativeSrc": "19621:64:19", + "nodeType": "YulFunctionCall", + "src": "19621:64:19" + }, + "nativeSrc": "19621:64:19", + "nodeType": "YulExpressionStatement", + "src": "19621:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "19526:7:19", + "nodeType": "YulIdentifier", + "src": "19526:7:19" + }, + { + "name": "newLen", + "nativeSrc": "19535:6:19", + "nodeType": "YulIdentifier", + "src": "19535:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19523:2:19", + "nodeType": "YulIdentifier", + "src": "19523:2:19" + }, + "nativeSrc": "19523:19:19", + "nodeType": "YulFunctionCall", + "src": "19523:19:19" + }, + "nativeSrc": "19520:179:19", + "nodeType": "YulIf", + "src": "19520:179:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19719:4:19", + "nodeType": "YulIdentifier", + "src": "19719:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19733:6:19", + "nodeType": "YulIdentifier", + "src": "19733:6:19" + }, + { + "kind": "number", + "nativeSrc": "19741:1:19", + "nodeType": "YulLiteral", + "src": "19741:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19729:3:19", + "nodeType": "YulIdentifier", + "src": "19729:3:19" + }, + "nativeSrc": "19729:14:19", + "nodeType": "YulFunctionCall", + "src": "19729:14:19" + }, + { + "kind": "number", + "nativeSrc": "19745:1:19", + "nodeType": "YulLiteral", + "src": "19745:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19725:3:19", + "nodeType": "YulIdentifier", + "src": "19725:3:19" + }, + "nativeSrc": "19725:22:19", + "nodeType": "YulFunctionCall", + "src": "19725:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19712:6:19", + "nodeType": "YulIdentifier", + "src": "19712:6:19" + }, + "nativeSrc": "19712:36:19", + "nodeType": "YulFunctionCall", + "src": "19712:36:19" + }, + "nativeSrc": "19712:36:19", + "nodeType": "YulExpressionStatement", + "src": "19712:36:19" + } + ] + }, + "nativeSrc": "19140:618:19", + "nodeType": "YulCase", + "src": "19140:618:19", + "value": { + "kind": "number", + "nativeSrc": "19145:1:19", + "nodeType": "YulLiteral", + "src": "19145:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "19775:222:19", + "nodeType": "YulBlock", + "src": "19775:222:19", + "statements": [ + { + "nativeSrc": "19789:14:19", + "nodeType": "YulVariableDeclaration", + "src": "19789:14:19", + "value": { + "kind": "number", + "nativeSrc": "19802:1:19", + "nodeType": "YulLiteral", + "src": "19802:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19793:5:19", + "nodeType": "YulTypedName", + "src": "19793:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19826:67:19", + "nodeType": "YulBlock", + "src": "19826:67:19", + "statements": [ + { + "nativeSrc": "19844:35:19", + "nodeType": "YulAssignment", + "src": "19844:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19863:3:19", + "nodeType": "YulIdentifier", + "src": "19863:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "19868:9:19", + "nodeType": "YulIdentifier", + "src": "19868:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19859:3:19", + "nodeType": "YulIdentifier", + "src": "19859:3:19" + }, + "nativeSrc": "19859:19:19", + "nodeType": "YulFunctionCall", + "src": "19859:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19853:5:19", + "nodeType": "YulIdentifier", + "src": "19853:5:19" + }, + "nativeSrc": "19853:26:19", + "nodeType": "YulFunctionCall", + "src": "19853:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19844:5:19", + "nodeType": "YulIdentifier", + "src": "19844:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "19819:6:19", + "nodeType": "YulIdentifier", + "src": "19819:6:19" + }, + "nativeSrc": "19816:77:19", + "nodeType": "YulIf", + "src": "19816:77:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19913:4:19", + "nodeType": "YulIdentifier", + "src": "19913:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19972:5:19", + "nodeType": "YulIdentifier", + "src": "19972:5:19" + }, + { + "name": "newLen", + "nativeSrc": "19979:6:19", + "nodeType": "YulIdentifier", + "src": "19979:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "19919:52:19", + "nodeType": "YulIdentifier", + "src": "19919:52:19" + }, + "nativeSrc": "19919:67:19", + "nodeType": "YulFunctionCall", + "src": "19919:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19906:6:19", + "nodeType": "YulIdentifier", + "src": "19906:6:19" + }, + "nativeSrc": "19906:81:19", + "nodeType": "YulFunctionCall", + "src": "19906:81:19" + }, + "nativeSrc": "19906:81:19", + "nodeType": "YulExpressionStatement", + "src": "19906:81:19" + } + ] + }, + "nativeSrc": "19767:230:19", + "nodeType": "YulCase", + "src": "19767:230:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19120:6:19", + "nodeType": "YulIdentifier", + "src": "19120:6:19" + }, + { + "kind": "number", + "nativeSrc": "19128:2:19", + "nodeType": "YulLiteral", + "src": "19128:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19117:2:19", + "nodeType": "YulIdentifier", + "src": "19117:2:19" + }, + "nativeSrc": "19117:14:19", + "nodeType": "YulFunctionCall", + "src": "19117:14:19" + }, + "nativeSrc": "19110:887:19", + "nodeType": "YulSwitch", + "src": "19110:887:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "18608:1395:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18689:4:19", + "nodeType": "YulTypedName", + "src": "18689:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "18695:3:19", + "nodeType": "YulTypedName", + "src": "18695:3:19", + "type": "" + } + ], + "src": "18608:1395:19" + }, + { + "body": { + "nativeSrc": "20294:416:19", + "nodeType": "YulBlock", + "src": "20294:416:19", + "statements": [ + { + "nativeSrc": "20305:102:19", + "nodeType": "YulAssignment", + "src": "20305:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "20394:6:19", + "nodeType": "YulIdentifier", + "src": "20394:6:19" + }, + { + "name": "pos", + "nativeSrc": "20403:3:19", + "nodeType": "YulIdentifier", + "src": "20403:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20312:81:19", + "nodeType": "YulIdentifier", + "src": "20312:81:19" + }, + "nativeSrc": "20312:95:19", + "nodeType": "YulFunctionCall", + "src": "20312:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20305:3:19", + "nodeType": "YulIdentifier", + "src": "20305:3:19" + } + ] + }, + { + "nativeSrc": "20417:102:19", + "nodeType": "YulAssignment", + "src": "20417:102:19", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "20506:6:19", + "nodeType": "YulIdentifier", + "src": "20506:6:19" + }, + { + "name": "pos", + "nativeSrc": "20515:3:19", + "nodeType": "YulIdentifier", + "src": "20515:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20424:81:19", + "nodeType": "YulIdentifier", + "src": "20424:81:19" + }, + "nativeSrc": "20424:95:19", + "nodeType": "YulFunctionCall", + "src": "20424:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20417:3:19", + "nodeType": "YulIdentifier", + "src": "20417:3:19" + } + ] + }, + { + "nativeSrc": "20529:155:19", + "nodeType": "YulAssignment", + "src": "20529:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20680:3:19", + "nodeType": "YulIdentifier", + "src": "20680:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20536:142:19", + "nodeType": "YulIdentifier", + "src": "20536:142:19" + }, + "nativeSrc": "20536:148:19", + "nodeType": "YulFunctionCall", + "src": "20536:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20529:3:19", + "nodeType": "YulIdentifier", + "src": "20529:3:19" + } + ] + }, + { + "nativeSrc": "20694:10:19", + "nodeType": "YulAssignment", + "src": "20694:10:19", + "value": { + "name": "pos", + "nativeSrc": "20701:3:19", + "nodeType": "YulIdentifier", + "src": "20701:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "20694:3:19", + "nodeType": "YulIdentifier", + "src": "20694:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "20009:701:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "20265:3:19", + "nodeType": "YulTypedName", + "src": "20265:3:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20271:6:19", + "nodeType": "YulTypedName", + "src": "20271:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20279:6:19", + "nodeType": "YulTypedName", + "src": "20279:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "20290:3:19", + "nodeType": "YulTypedName", + "src": "20290:3:19", + "type": "" + } + ], + "src": "20009:701:19" + }, + { + "body": { + "nativeSrc": "20744:152:19", + "nodeType": "YulBlock", + "src": "20744:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20761:1:19", + "nodeType": "YulLiteral", + "src": "20761:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20764:77:19", + "nodeType": "YulLiteral", + "src": "20764:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20754:6:19", + "nodeType": "YulIdentifier", + "src": "20754:6:19" + }, + "nativeSrc": "20754:88:19", + "nodeType": "YulFunctionCall", + "src": "20754:88:19" + }, + "nativeSrc": "20754:88:19", + "nodeType": "YulExpressionStatement", + "src": "20754:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20858:1:19", + "nodeType": "YulLiteral", + "src": "20858:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "20861:4:19", + "nodeType": "YulLiteral", + "src": "20861:4:19", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20851:6:19", + "nodeType": "YulIdentifier", + "src": "20851:6:19" + }, + "nativeSrc": "20851:15:19", + "nodeType": "YulFunctionCall", + "src": "20851:15:19" + }, + "nativeSrc": "20851:15:19", + "nodeType": "YulExpressionStatement", + "src": "20851:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20882:1:19", + "nodeType": "YulLiteral", + "src": "20882:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20885:4:19", + "nodeType": "YulLiteral", + "src": "20885:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20875:6:19", + "nodeType": "YulIdentifier", + "src": "20875:6:19" + }, + "nativeSrc": "20875:15:19", + "nodeType": "YulFunctionCall", + "src": "20875:15:19" + }, + "nativeSrc": "20875:15:19", + "nodeType": "YulExpressionStatement", + "src": "20875:15:19" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "20716:180:19", + "nodeType": "YulFunctionDefinition", + "src": "20716:180:19" + }, + { + "body": { + "nativeSrc": "20960:40:19", + "nodeType": "YulBlock", + "src": "20960:40:19", + "statements": [ + { + "nativeSrc": "20971:22:19", + "nodeType": "YulAssignment", + "src": "20971:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "20987:5:19", + "nodeType": "YulIdentifier", + "src": "20987:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20981:5:19", + "nodeType": "YulIdentifier", + "src": "20981:5:19" + }, + "nativeSrc": "20981:12:19", + "nodeType": "YulFunctionCall", + "src": "20981:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "20971:6:19", + "nodeType": "YulIdentifier", + "src": "20971:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "20902:98:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "20943:5:19", + "nodeType": "YulTypedName", + "src": "20943:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "20953:6:19", + "nodeType": "YulTypedName", + "src": "20953:6:19", + "type": "" + } + ], + "src": "20902:98:19" + }, + { + "body": { + "nativeSrc": "21101:73:19", + "nodeType": "YulBlock", + "src": "21101:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21118:3:19", + "nodeType": "YulIdentifier", + "src": "21118:3:19" + }, + { + "name": "length", + "nativeSrc": "21123:6:19", + "nodeType": "YulIdentifier", + "src": "21123:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21111:6:19", + "nodeType": "YulIdentifier", + "src": "21111:6:19" + }, + "nativeSrc": "21111:19:19", + "nodeType": "YulFunctionCall", + "src": "21111:19:19" + }, + "nativeSrc": "21111:19:19", + "nodeType": "YulExpressionStatement", + "src": "21111:19:19" + }, + { + "nativeSrc": "21139:29:19", + "nodeType": "YulAssignment", + "src": "21139:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21158:3:19", + "nodeType": "YulIdentifier", + "src": "21158:3:19" + }, + { + "kind": "number", + "nativeSrc": "21163:4:19", + "nodeType": "YulLiteral", + "src": "21163:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21154:3:19", + "nodeType": "YulIdentifier", + "src": "21154:3:19" + }, + "nativeSrc": "21154:14:19", + "nodeType": "YulFunctionCall", + "src": "21154:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "21139:11:19", + "nodeType": "YulIdentifier", + "src": "21139:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21006:168:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "21073:3:19", + "nodeType": "YulTypedName", + "src": "21073:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "21078:6:19", + "nodeType": "YulTypedName", + "src": "21078:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "21089:11:19", + "nodeType": "YulTypedName", + "src": "21089:11:19", + "type": "" + } + ], + "src": "21006:168:19" + }, + { + "body": { + "nativeSrc": "21270:283:19", + "nodeType": "YulBlock", + "src": "21270:283:19", + "statements": [ + { + "nativeSrc": "21280:52:19", + "nodeType": "YulVariableDeclaration", + "src": "21280:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21326:5:19", + "nodeType": "YulIdentifier", + "src": "21326:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "21294:31:19", + "nodeType": "YulIdentifier", + "src": "21294:31:19" + }, + "nativeSrc": "21294:38:19", + "nodeType": "YulFunctionCall", + "src": "21294:38:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "21284:6:19", + "nodeType": "YulTypedName", + "src": "21284:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "21341:77:19", + "nodeType": "YulAssignment", + "src": "21341:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21406:3:19", + "nodeType": "YulIdentifier", + "src": "21406:3:19" + }, + { + "name": "length", + "nativeSrc": "21411:6:19", + "nodeType": "YulIdentifier", + "src": "21411:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21348:57:19", + "nodeType": "YulIdentifier", + "src": "21348:57:19" + }, + "nativeSrc": "21348:70:19", + "nodeType": "YulFunctionCall", + "src": "21348:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21341:3:19", + "nodeType": "YulIdentifier", + "src": "21341:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "21466:5:19", + "nodeType": "YulIdentifier", + "src": "21466:5:19" + }, + { + "kind": "number", + "nativeSrc": "21473:4:19", + "nodeType": "YulLiteral", + "src": "21473:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21462:3:19", + "nodeType": "YulIdentifier", + "src": "21462:3:19" + }, + "nativeSrc": "21462:16:19", + "nodeType": "YulFunctionCall", + "src": "21462:16:19" + }, + { + "name": "pos", + "nativeSrc": "21480:3:19", + "nodeType": "YulIdentifier", + "src": "21480:3:19" + }, + { + "name": "length", + "nativeSrc": "21485:6:19", + "nodeType": "YulIdentifier", + "src": "21485:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "21427:34:19", + "nodeType": "YulIdentifier", + "src": "21427:34:19" + }, + "nativeSrc": "21427:65:19", + "nodeType": "YulFunctionCall", + "src": "21427:65:19" + }, + "nativeSrc": "21427:65:19", + "nodeType": "YulExpressionStatement", + "src": "21427:65:19" + }, + { + "nativeSrc": "21501:46:19", + "nodeType": "YulAssignment", + "src": "21501:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21512:3:19", + "nodeType": "YulIdentifier", + "src": "21512:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "21539:6:19", + "nodeType": "YulIdentifier", + "src": "21539:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "21517:21:19", + "nodeType": "YulIdentifier", + "src": "21517:21:19" + }, + "nativeSrc": "21517:29:19", + "nodeType": "YulFunctionCall", + "src": "21517:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21508:3:19", + "nodeType": "YulIdentifier", + "src": "21508:3:19" + }, + "nativeSrc": "21508:39:19", + "nodeType": "YulFunctionCall", + "src": "21508:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21501:3:19", + "nodeType": "YulIdentifier", + "src": "21501:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21180:373:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21251:5:19", + "nodeType": "YulTypedName", + "src": "21251:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "21258:3:19", + "nodeType": "YulTypedName", + "src": "21258:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "21266:3:19", + "nodeType": "YulTypedName", + "src": "21266:3:19", + "type": "" + } + ], + "src": "21180:373:19" + }, + { + "body": { + "nativeSrc": "21759:440:19", + "nodeType": "YulBlock", + "src": "21759:440:19", + "statements": [ + { + "nativeSrc": "21769:27:19", + "nodeType": "YulAssignment", + "src": "21769:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21781:9:19", + "nodeType": "YulIdentifier", + "src": "21781:9:19" + }, + { + "kind": "number", + "nativeSrc": "21792:3:19", + "nodeType": "YulLiteral", + "src": "21792:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21777:3:19", + "nodeType": "YulIdentifier", + "src": "21777:3:19" + }, + "nativeSrc": "21777:19:19", + "nodeType": "YulFunctionCall", + "src": "21777:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21769:4:19", + "nodeType": "YulIdentifier", + "src": "21769:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "21850:6:19", + "nodeType": "YulIdentifier", + "src": "21850:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21863:9:19", + "nodeType": "YulIdentifier", + "src": "21863:9:19" + }, + { + "kind": "number", + "nativeSrc": "21874:1:19", + "nodeType": "YulLiteral", + "src": "21874:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21859:3:19", + "nodeType": "YulIdentifier", + "src": "21859:3:19" + }, + "nativeSrc": "21859:17:19", + "nodeType": "YulFunctionCall", + "src": "21859:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "21806:43:19", + "nodeType": "YulIdentifier", + "src": "21806:43:19" + }, + "nativeSrc": "21806:71:19", + "nodeType": "YulFunctionCall", + "src": "21806:71:19" + }, + "nativeSrc": "21806:71:19", + "nodeType": "YulExpressionStatement", + "src": "21806:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "21931:6:19", + "nodeType": "YulIdentifier", + "src": "21931:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21944:9:19", + "nodeType": "YulIdentifier", + "src": "21944:9:19" + }, + { + "kind": "number", + "nativeSrc": "21955:2:19", + "nodeType": "YulLiteral", + "src": "21955:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21940:3:19", + "nodeType": "YulIdentifier", + "src": "21940:3:19" + }, + "nativeSrc": "21940:18:19", + "nodeType": "YulFunctionCall", + "src": "21940:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "21887:43:19", + "nodeType": "YulIdentifier", + "src": "21887:43:19" + }, + "nativeSrc": "21887:72:19", + "nodeType": "YulFunctionCall", + "src": "21887:72:19" + }, + "nativeSrc": "21887:72:19", + "nodeType": "YulExpressionStatement", + "src": "21887:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "22013:6:19", + "nodeType": "YulIdentifier", + "src": "22013:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22026:9:19", + "nodeType": "YulIdentifier", + "src": "22026:9:19" + }, + { + "kind": "number", + "nativeSrc": "22037:2:19", + "nodeType": "YulLiteral", + "src": "22037:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22022:3:19", + "nodeType": "YulIdentifier", + "src": "22022:3:19" + }, + "nativeSrc": "22022:18:19", + "nodeType": "YulFunctionCall", + "src": "22022:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "21969:43:19", + "nodeType": "YulIdentifier", + "src": "21969:43:19" + }, + "nativeSrc": "21969:72:19", + "nodeType": "YulFunctionCall", + "src": "21969:72:19" + }, + "nativeSrc": "21969:72:19", + "nodeType": "YulExpressionStatement", + "src": "21969:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22062:9:19", + "nodeType": "YulIdentifier", + "src": "22062:9:19" + }, + { + "kind": "number", + "nativeSrc": "22073:2:19", + "nodeType": "YulLiteral", + "src": "22073:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22058:3:19", + "nodeType": "YulIdentifier", + "src": "22058:3:19" + }, + "nativeSrc": "22058:18:19", + "nodeType": "YulFunctionCall", + "src": "22058:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22082:4:19", + "nodeType": "YulIdentifier", + "src": "22082:4:19" + }, + { + "name": "headStart", + "nativeSrc": "22088:9:19", + "nodeType": "YulIdentifier", + "src": "22088:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22078:3:19", + "nodeType": "YulIdentifier", + "src": "22078:3:19" + }, + "nativeSrc": "22078:20:19", + "nodeType": "YulFunctionCall", + "src": "22078:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22051:6:19", + "nodeType": "YulIdentifier", + "src": "22051:6:19" + }, + "nativeSrc": "22051:48:19", + "nodeType": "YulFunctionCall", + "src": "22051:48:19" + }, + "nativeSrc": "22051:48:19", + "nodeType": "YulExpressionStatement", + "src": "22051:48:19" + }, + { + "nativeSrc": "22108:84:19", + "nodeType": "YulAssignment", + "src": "22108:84:19", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "22178:6:19", + "nodeType": "YulIdentifier", + "src": "22178:6:19" + }, + { + "name": "tail", + "nativeSrc": "22187:4:19", + "nodeType": "YulIdentifier", + "src": "22187:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "22116:61:19", + "nodeType": "YulIdentifier", + "src": "22116:61:19" + }, + "nativeSrc": "22116:76:19", + "nodeType": "YulFunctionCall", + "src": "22116:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22108:4:19", + "nodeType": "YulIdentifier", + "src": "22108:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "21559:640:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21707:9:19", + "nodeType": "YulTypedName", + "src": "21707:9:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "21719:6:19", + "nodeType": "YulTypedName", + "src": "21719:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21727:6:19", + "nodeType": "YulTypedName", + "src": "21727:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21735:6:19", + "nodeType": "YulTypedName", + "src": "21735:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21743:6:19", + "nodeType": "YulTypedName", + "src": "21743:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21754:4:19", + "nodeType": "YulTypedName", + "src": "21754:4:19", + "type": "" + } + ], + "src": "21559:640:19" + }, + { + "body": { + "nativeSrc": "22267:79:19", + "nodeType": "YulBlock", + "src": "22267:79:19", + "statements": [ + { + "nativeSrc": "22277:22:19", + "nodeType": "YulAssignment", + "src": "22277:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "22292:6:19", + "nodeType": "YulIdentifier", + "src": "22292:6:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22286:5:19", + "nodeType": "YulIdentifier", + "src": "22286:5:19" + }, + "nativeSrc": "22286:13:19", + "nodeType": "YulFunctionCall", + "src": "22286:13:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "22277:5:19", + "nodeType": "YulIdentifier", + "src": "22277:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "22334:5:19", + "nodeType": "YulIdentifier", + "src": "22334:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "22308:25:19", + "nodeType": "YulIdentifier", + "src": "22308:25:19" + }, + "nativeSrc": "22308:32:19", + "nodeType": "YulFunctionCall", + "src": "22308:32:19" + }, + "nativeSrc": "22308:32:19", + "nodeType": "YulExpressionStatement", + "src": "22308:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "22205:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "22245:6:19", + "nodeType": "YulTypedName", + "src": "22245:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "22253:3:19", + "nodeType": "YulTypedName", + "src": "22253:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "22261:5:19", + "nodeType": "YulTypedName", + "src": "22261:5:19", + "type": "" + } + ], + "src": "22205:141:19" + }, + { + "body": { + "nativeSrc": "22428:273:19", + "nodeType": "YulBlock", + "src": "22428:273:19", + "statements": [ + { + "body": { + "nativeSrc": "22474:83:19", + "nodeType": "YulBlock", + "src": "22474:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "22476:77:19", + "nodeType": "YulIdentifier", + "src": "22476:77:19" + }, + "nativeSrc": "22476:79:19", + "nodeType": "YulFunctionCall", + "src": "22476:79:19" + }, + "nativeSrc": "22476:79:19", + "nodeType": "YulExpressionStatement", + "src": "22476:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "22449:7:19", + "nodeType": "YulIdentifier", + "src": "22449:7:19" + }, + { + "name": "headStart", + "nativeSrc": "22458:9:19", + "nodeType": "YulIdentifier", + "src": "22458:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22445:3:19", + "nodeType": "YulIdentifier", + "src": "22445:3:19" + }, + "nativeSrc": "22445:23:19", + "nodeType": "YulFunctionCall", + "src": "22445:23:19" + }, + { + "kind": "number", + "nativeSrc": "22470:2:19", + "nodeType": "YulLiteral", + "src": "22470:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22441:3:19", + "nodeType": "YulIdentifier", + "src": "22441:3:19" + }, + "nativeSrc": "22441:32:19", + "nodeType": "YulFunctionCall", + "src": "22441:32:19" + }, + "nativeSrc": "22438:119:19", + "nodeType": "YulIf", + "src": "22438:119:19" + }, + { + "nativeSrc": "22567:127:19", + "nodeType": "YulBlock", + "src": "22567:127:19", + "statements": [ + { + "nativeSrc": "22582:15:19", + "nodeType": "YulVariableDeclaration", + "src": "22582:15:19", + "value": { + "kind": "number", + "nativeSrc": "22596:1:19", + "nodeType": "YulLiteral", + "src": "22596:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "22586:6:19", + "nodeType": "YulTypedName", + "src": "22586:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "22611:73:19", + "nodeType": "YulAssignment", + "src": "22611:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22656:9:19", + "nodeType": "YulIdentifier", + "src": "22656:9:19" + }, + { + "name": "offset", + "nativeSrc": "22667:6:19", + "nodeType": "YulIdentifier", + "src": "22667:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22652:3:19", + "nodeType": "YulIdentifier", + "src": "22652:3:19" + }, + "nativeSrc": "22652:22:19", + "nodeType": "YulFunctionCall", + "src": "22652:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "22676:7:19", + "nodeType": "YulIdentifier", + "src": "22676:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "22621:30:19", + "nodeType": "YulIdentifier", + "src": "22621:30:19" + }, + "nativeSrc": "22621:63:19", + "nodeType": "YulFunctionCall", + "src": "22621:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "22611:6:19", + "nodeType": "YulIdentifier", + "src": "22611:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "22352:349:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22398:9:19", + "nodeType": "YulTypedName", + "src": "22398:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "22409:7:19", + "nodeType": "YulTypedName", + "src": "22409:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "22421:6:19", + "nodeType": "YulTypedName", + "src": "22421:6:19", + "type": "" + } + ], + "src": "22352:349:19" + }, + { + "body": { + "nativeSrc": "22752:149:19", + "nodeType": "YulBlock", + "src": "22752:149:19", + "statements": [ + { + "nativeSrc": "22762:25:19", + "nodeType": "YulAssignment", + "src": "22762:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "22785:1:19", + "nodeType": "YulIdentifier", + "src": "22785:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "22767:17:19", + "nodeType": "YulIdentifier", + "src": "22767:17:19" + }, + "nativeSrc": "22767:20:19", + "nodeType": "YulFunctionCall", + "src": "22767:20:19" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "22762:1:19", + "nodeType": "YulIdentifier", + "src": "22762:1:19" + } + ] + }, + { + "nativeSrc": "22796:25:19", + "nodeType": "YulAssignment", + "src": "22796:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "22819:1:19", + "nodeType": "YulIdentifier", + "src": "22819:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "22801:17:19", + "nodeType": "YulIdentifier", + "src": "22801:17:19" + }, + "nativeSrc": "22801:20:19", + "nodeType": "YulFunctionCall", + "src": "22801:20:19" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "22796:1:19", + "nodeType": "YulIdentifier", + "src": "22796:1:19" + } + ] + }, + { + "nativeSrc": "22830:17:19", + "nodeType": "YulAssignment", + "src": "22830:17:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "22842:1:19", + "nodeType": "YulIdentifier", + "src": "22842:1:19" + }, + { + "name": "y", + "nativeSrc": "22845:1:19", + "nodeType": "YulIdentifier", + "src": "22845:1:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22838:3:19", + "nodeType": "YulIdentifier", + "src": "22838:3:19" + }, + "nativeSrc": "22838:9:19", + "nodeType": "YulFunctionCall", + "src": "22838:9:19" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "22830:4:19", + "nodeType": "YulIdentifier", + "src": "22830:4:19" + } + ] + }, + { + "body": { + "nativeSrc": "22872:22:19", + "nodeType": "YulBlock", + "src": "22872:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "22874:16:19", + "nodeType": "YulIdentifier", + "src": "22874:16:19" + }, + "nativeSrc": "22874:18:19", + "nodeType": "YulFunctionCall", + "src": "22874:18:19" + }, + "nativeSrc": "22874:18:19", + "nodeType": "YulExpressionStatement", + "src": "22874:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "22863:4:19", + "nodeType": "YulIdentifier", + "src": "22863:4:19" + }, + { + "name": "x", + "nativeSrc": "22869:1:19", + "nodeType": "YulIdentifier", + "src": "22869:1:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22860:2:19", + "nodeType": "YulIdentifier", + "src": "22860:2:19" + }, + "nativeSrc": "22860:11:19", + "nodeType": "YulFunctionCall", + "src": "22860:11:19" + }, + "nativeSrc": "22857:37:19", + "nodeType": "YulIf", + "src": "22857:37:19" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "22707:194:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "22738:1:19", + "nodeType": "YulTypedName", + "src": "22738:1:19", + "type": "" + }, + { + "name": "y", + "nativeSrc": "22741:1:19", + "nodeType": "YulTypedName", + "src": "22741:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "22747:4:19", + "nodeType": "YulTypedName", + "src": "22747:4:19", + "type": "" + } + ], + "src": "22707:194:19" + }, + { + "body": { + "nativeSrc": "22935:152:19", + "nodeType": "YulBlock", + "src": "22935:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22952:1:19", + "nodeType": "YulLiteral", + "src": "22952:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22955:77:19", + "nodeType": "YulLiteral", + "src": "22955:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22945:6:19", + "nodeType": "YulIdentifier", + "src": "22945:6:19" + }, + "nativeSrc": "22945:88:19", + "nodeType": "YulFunctionCall", + "src": "22945:88:19" + }, + "nativeSrc": "22945:88:19", + "nodeType": "YulExpressionStatement", + "src": "22945:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23049:1:19", + "nodeType": "YulLiteral", + "src": "23049:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "23052:4:19", + "nodeType": "YulLiteral", + "src": "23052:4:19", + "type": "", + "value": "0x31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23042:6:19", + "nodeType": "YulIdentifier", + "src": "23042:6:19" + }, + "nativeSrc": "23042:15:19", + "nodeType": "YulFunctionCall", + "src": "23042:15:19" + }, + "nativeSrc": "23042:15:19", + "nodeType": "YulExpressionStatement", + "src": "23042:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23073:1:19", + "nodeType": "YulLiteral", + "src": "23073:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23076:4:19", + "nodeType": "YulLiteral", + "src": "23076:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23066:6:19", + "nodeType": "YulIdentifier", + "src": "23066:6:19" + }, + "nativeSrc": "23066:15:19", + "nodeType": "YulFunctionCall", + "src": "23066:15:19" + }, + "nativeSrc": "23066:15:19", + "nodeType": "YulExpressionStatement", + "src": "23066:15:19" + } + ] + }, + "name": "panic_error_0x31", + "nativeSrc": "22907:180:19", + "nodeType": "YulFunctionDefinition", + "src": "22907:180:19" + } + ] + }, + "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 cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\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 mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\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_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(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_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_bytes_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 abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_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_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\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 function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__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_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(memPtr) {\n\n mstore(add(memPtr, 0), \".json\")\n\n }\n\n function abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 5)\n store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(pos)\n end := add(pos, 5)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\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 abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101425760003560e01c806356189236116100b857806395d89b411161007c57806395d89b4114610375578063a22cb46514610393578063b88d4fde146103af578063c87b56dd146103cb578063e985e9c5146103fb578063f2fde38b1461042b57610142565b806356189236146102cf5780636352211e146102ed57806370a082311461031d578063715018a61461034d5780638da5cb5b1461035757610142565b806323b872dd1161010a57806323b872dd146101ff5780632f745c591461021b57806340d097c31461024b57806342842e0e146102675780634f6ccce71461028357806355f804b3146102b357610142565b806301ffc9a71461014757806306fdde0314610177578063081812fc14610195578063095ea7b3146101c557806318160ddd146101e1575b600080fd5b610161600480360381019061015c919061213b565b610447565b60405161016e9190612183565b60405180910390f35b61017f610459565b60405161018c919061222e565b60405180910390f35b6101af60048036038101906101aa9190612286565b6104eb565b6040516101bc91906122f4565b60405180910390f35b6101df60048036038101906101da919061233b565b610507565b005b6101e961051d565b6040516101f6919061238a565b60405180910390f35b610219600480360381019061021491906123a5565b61052a565b005b6102356004803603810190610230919061233b565b61062c565b604051610242919061238a565b60405180910390f35b610265600480360381019061026091906123f8565b6106d5565b005b610281600480360381019061027c91906123a5565b610737565b005b61029d60048036038101906102989190612286565b610757565b6040516102aa919061238a565b60405180910390f35b6102cd60048036038101906102c8919061255a565b6107cd565b005b6102d76107e8565b6040516102e4919061238a565b60405180910390f35b61030760048036038101906103029190612286565b6107f2565b60405161031491906122f4565b60405180910390f35b610337600480360381019061033291906123f8565b610804565b604051610344919061238a565b60405180910390f35b6103556108be565b005b61035f6108d2565b60405161036c91906122f4565b60405180910390f35b61037d6108fc565b60405161038a919061222e565b60405180910390f35b6103ad60048036038101906103a891906125cf565b61098e565b005b6103c960048036038101906103c491906126b0565b6109a4565b005b6103e560048036038101906103e09190612286565b6109c1565b6040516103f2919061222e565b60405180910390f35b61041560048036038101906104109190612733565b610a20565b6040516104229190612183565b60405180910390f35b610445600480360381019061044091906123f8565b610ab4565b005b600061045282610b3a565b9050919050565b606060008054610468906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610494906127a2565b80156104e15780601f106104b6576101008083540402835291602001916104e1565b820191906000526020600020905b8154815290600101906020018083116104c457829003601f168201915b5050505050905090565b60006104f682610b9b565b5061050082610c23565b9050919050565b6105198282610514610c60565b610c68565b5050565b6000600880549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361059c5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161059391906122f4565b60405180910390fd5b60006105b083836105ab610c60565b610c7a565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610626578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161061d939291906127d3565b60405180910390fd5b50505050565b600061063783610804565b821061067c5782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161067392919061280a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6106dd610c90565b6000600c60008154809291906106f290612862565b9190505590506107028282610d17565b6107338161070f83610d35565b60405160200161071f9190612932565b604051602081830303815290604052610e03565b5050565b610752838383604051806020016040528060008152506109a4565b505050565b600061076161051d565b82106107a7576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161079e92919061280a565b60405180910390fd5b600882815481106107bb576107ba612954565b5b90600052602060002001549050919050565b6107d5610c90565b80600d90816107e49190612b2f565b5050565b6000600c54905090565b60006107fd82610b9b565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108775760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161086e91906122f4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108c6610c90565b6108d06000610e5f565b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461090b906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610937906127a2565b80156109845780601f1061095957610100808354040283529160200191610984565b820191906000526020600020905b81548152906001019060200180831161096757829003601f168201915b5050505050905090565b6109a0610999610c60565b8383610f25565b5050565b6109af84848461052a565b6109bb84848484611094565b50505050565b606060006109cd61124b565b905060008151116109ed5760405180602001604052806000815250610a18565b806109f784610d35565b604051602001610a08929190612c01565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610abc610c90565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2e5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b2591906122f4565b60405180910390fd5b610b3781610e5f565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b945750610b93826112dd565b5b9050919050565b600080610ba783611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c1a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610c11919061238a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b610c758383836001611394565b505050565b6000610c87848484611559565b90509392505050565b610c98610c60565b73ffffffffffffffffffffffffffffffffffffffff16610cb66108d2565b73ffffffffffffffffffffffffffffffffffffffff1614610d1557610cd9610c60565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d0c91906122f4565b60405180910390fd5b565b610d31828260405180602001604052806000815250611676565b5050565b606060006001610d4484611692565b01905060008167ffffffffffffffff811115610d6357610d6261242f565b5b6040519080825280601f01601f191660200182016040528015610d955781602001600182028036833780820191505090505b509050600082602001820190505b600115610df8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610dec57610deb612c30565b5b04945060008503610da3575b819350505050919050565b80600a60008481526020019081526020016000209081610e239190612b2f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051610e53919061238a565b60405180910390a15050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9657816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610f8d91906122f4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110879190612183565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611245578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026110d8610c60565b8685856040518563ffffffff1660e01b81526004016110fa9493929190612cb4565b6020604051808303816000875af192505050801561113657506040513d601f19601f820116820180604052508101906111339190612d15565b60015b6111ba573d8060008114611166576040519150601f19603f3d011682016040523d82523d6000602084013e61116b565b606091505b5060008151036111b257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016111a991906122f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161123a91906122f4565b60405180910390fd5b505b50505050565b6060600d805461125a906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054611286906127a2565b80156112d35780601f106112a8576101008083540402835291602001916112d3565b820191906000526020600020905b8154815290600101906020018083116112b657829003601f168201915b5050505050905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611350575061134f826117e5565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806113cd5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115015760006113dd84610b9b565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561144857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561145b57506114598184610a20565b155b1561149d57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161149491906122f4565b60405180910390fd5b81156114ff57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806115678585856118c7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ab576115a684611ae1565b6115ea565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115e9576115e88185611b2a565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361162c5761162784611c8b565b61166b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461166a576116698585611d5c565b5b5b809150509392505050565b6116808383611de7565b61168d6000848484611094565b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106116f0577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116e6576116e5612c30565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061172d576d04ee2d6d415b85acef8100000000838161172357611722612c30565b5b0492506020810190505b662386f26fc10000831061175c57662386f26fc10000838161175257611751612c30565b5b0492506010810190505b6305f5e1008310611785576305f5e100838161177b5761177a612c30565b5b0492506008810190505b61271083106117aa5761271083816117a05761179f612c30565b5b0492506004810190505b606483106117cd57606483816117c3576117c2612c30565b5b0492506002810190505b600a83106117dc576001810190505b80915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118b057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118c057506118bf82611ee0565b5b9050919050565b6000806118d384611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461191557611914818486611f4a565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119a657611957600085600080611394565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611a29576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000611b3583610804565b9050600060076000848152602001908152602001600020549050818114611c1a576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050611c9f9190612d42565b9050600060096000848152602001908152602001600020549050600060088381548110611ccf57611cce612954565b5b906000526020600020015490508060088381548110611cf157611cf0612954565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480611d4057611d3f612d76565b5b6001900381819060005260206000200160009055905550505050565b60006001611d6984610804565b611d739190612d42565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e595760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e5091906122f4565b60405180910390fd5b6000611e6783836000610c7a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611edb5760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611ed291906122f4565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611f5583838361200e565b61200957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fca57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611fc1919061238a565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161200092919061280a565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208757506120868484610a20565b5b806120c557508273ffffffffffffffffffffffffffffffffffffffff166120ad83610c23565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612118816120e3565b811461212357600080fd5b50565b6000813590506121358161210f565b92915050565b600060208284031215612151576121506120d9565b5b600061215f84828501612126565b91505092915050565b60008115159050919050565b61217d81612168565b82525050565b60006020820190506121986000830184612174565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121d85780820151818401526020810190506121bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006122008261219e565b61220a81856121a9565b935061221a8185602086016121ba565b612223816121e4565b840191505092915050565b6000602082019050818103600083015261224881846121f5565b905092915050565b6000819050919050565b61226381612250565b811461226e57600080fd5b50565b6000813590506122808161225a565b92915050565b60006020828403121561229c5761229b6120d9565b5b60006122aa84828501612271565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122de826122b3565b9050919050565b6122ee816122d3565b82525050565b600060208201905061230960008301846122e5565b92915050565b612318816122d3565b811461232357600080fd5b50565b6000813590506123358161230f565b92915050565b60008060408385031215612352576123516120d9565b5b600061236085828601612326565b925050602061237185828601612271565b9150509250929050565b61238481612250565b82525050565b600060208201905061239f600083018461237b565b92915050565b6000806000606084860312156123be576123bd6120d9565b5b60006123cc86828701612326565b93505060206123dd86828701612326565b92505060406123ee86828701612271565b9150509250925092565b60006020828403121561240e5761240d6120d9565b5b600061241c84828501612326565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612467826121e4565b810181811067ffffffffffffffff821117156124865761248561242f565b5b80604052505050565b60006124996120cf565b90506124a5828261245e565b919050565b600067ffffffffffffffff8211156124c5576124c461242f565b5b6124ce826121e4565b9050602081019050919050565b82818337600083830152505050565b60006124fd6124f8846124aa565b61248f565b9050828152602081018484840111156125195761251861242a565b5b6125248482856124db565b509392505050565b600082601f83011261254157612540612425565b5b81356125518482602086016124ea565b91505092915050565b6000602082840312156125705761256f6120d9565b5b600082013567ffffffffffffffff81111561258e5761258d6120de565b5b61259a8482850161252c565b91505092915050565b6125ac81612168565b81146125b757600080fd5b50565b6000813590506125c9816125a3565b92915050565b600080604083850312156125e6576125e56120d9565b5b60006125f485828601612326565b9250506020612605858286016125ba565b9150509250929050565b600067ffffffffffffffff82111561262a5761262961242f565b5b612633826121e4565b9050602081019050919050565b600061265361264e8461260f565b61248f565b90508281526020810184848401111561266f5761266e61242a565b5b61267a8482856124db565b509392505050565b600082601f83011261269757612696612425565b5b81356126a7848260208601612640565b91505092915050565b600080600080608085870312156126ca576126c96120d9565b5b60006126d887828801612326565b94505060206126e987828801612326565b93505060406126fa87828801612271565b925050606085013567ffffffffffffffff81111561271b5761271a6120de565b5b61272787828801612682565b91505092959194509250565b6000806040838503121561274a576127496120d9565b5b600061275885828601612326565b925050602061276985828601612326565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127ba57607f821691505b6020821081036127cd576127cc612773565b5b50919050565b60006060820190506127e860008301866122e5565b6127f5602083018561237b565b61280260408301846122e5565b949350505050565b600060408201905061281f60008301856122e5565b61282c602083018461237b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061286d82612250565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289f5761289e612833565b5b600182019050919050565b600081905092915050565b60006128c08261219e565b6128ca81856128aa565b93506128da8185602086016121ba565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061291c6005836128aa565b9150612927826128e6565b600582019050919050565b600061293e82846128b5565b91506129498261290f565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026129e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826129a8565b6129ef86836129a8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612a2c612a27612a2284612250565b612a07565b612250565b9050919050565b6000819050919050565b612a4683612a11565b612a5a612a5282612a33565b8484546129b5565b825550505050565b600090565b612a6f612a62565b612a7a818484612a3d565b505050565b5b81811015612a9e57612a93600082612a67565b600181019050612a80565b5050565b601f821115612ae357612ab481612983565b612abd84612998565b81016020851015612acc578190505b612ae0612ad885612998565b830182612a7f565b50505b505050565b600082821c905092915050565b6000612b0660001984600802612ae8565b1980831691505092915050565b6000612b1f8383612af5565b9150826002028217905092915050565b612b388261219e565b67ffffffffffffffff811115612b5157612b5061242f565b5b612b5b82546127a2565b612b66828285612aa2565b600060209050601f831160018114612b995760008415612b87578287015190505b612b918582612b13565b865550612bf9565b601f198416612ba786612983565b60005b82811015612bcf57848901518255600182019150602085019450602081019050612baa565b86831015612bec5784890151612be8601f891682612af5565b8355505b6001600288020188555050505b505050505050565b6000612c0d82856128b5565b9150612c1982846128b5565b9150612c248261290f565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612c8682612c5f565b612c908185612c6a565b9350612ca08185602086016121ba565b612ca9816121e4565b840191505092915050565b6000608082019050612cc960008301876122e5565b612cd660208301866122e5565b612ce3604083018561237b565b8181036060830152612cf58184612c7b565b905095945050505050565b600081519050612d0f8161210f565b92915050565b600060208284031215612d2b57612d2a6120d9565b5b6000612d3984828501612d00565b91505092915050565b6000612d4d82612250565b9150612d5883612250565b9250828203905081811115612d7057612d6f612833565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220e742470774f454e660aa990254ed1f1d8f5271ffa5f567e4e79c7881bf12ea2064736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x56189236 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x42B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x56189236 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x357 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x40D097C3 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x2B3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x213B JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x459 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E9 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x235 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x230 SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x242 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0x6D5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x281 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27C SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AA SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x255A JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2D7 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x238A 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 0x2286 JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x22F4 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 0x23F8 JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x355 PUSH2 0x8BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x35F PUSH2 0x8D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37D PUSH2 0x8FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38A SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x25CF JUMP JUMPDEST PUSH2 0x98E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x9A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x415 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x2733 JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x445 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x440 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0xAB4 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH2 0x452 DUP3 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x468 SWAP1 PUSH2 0x27A2 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 0x494 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4E1 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 0x4C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F6 DUP3 PUSH2 0xB9B JUMP JUMPDEST POP PUSH2 0x500 DUP3 PUSH2 0xC23 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x519 DUP3 DUP3 PUSH2 0x514 PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC68 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x59C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5B0 DUP4 DUP4 PUSH2 0x5AB PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x626 JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x637 DUP4 PUSH2 0x804 JUMP JUMPDEST DUP3 LT PUSH2 0x67C JUMPI DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x673 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 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 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6DD PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x6F2 SWAP1 PUSH2 0x2862 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE SWAP1 POP PUSH2 0x702 DUP3 DUP3 PUSH2 0xD17 JUMP JUMPDEST PUSH2 0x733 DUP2 PUSH2 0x70F DUP4 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x2932 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xE03 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x752 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x9A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x761 PUSH2 0x51D JUMP JUMPDEST DUP3 LT PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x79E SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7D5 PUSH2 0xC90 JUMP JUMPDEST DUP1 PUSH1 0xD SWAP1 DUP2 PUSH2 0x7E4 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FD DUP3 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x877 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x86E SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0x8D0 PUSH1 0x0 PUSH2 0xE5F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x90B SWAP1 PUSH2 0x27A2 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 0x937 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x984 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x959 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x984 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 0x967 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9A0 PUSH2 0x999 PUSH2 0xC60 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xF25 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x9AF DUP5 DUP5 DUP5 PUSH2 0x52A JUMP JUMPDEST PUSH2 0x9BB DUP5 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9CD PUSH2 0x124B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x9ED JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xA18 JUMP JUMPDEST DUP1 PUSH2 0x9F7 DUP5 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA08 SWAP3 SWAP2 SWAP1 PUSH2 0x2C01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xABC PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB25 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB37 DUP2 PUSH2 0xE5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB94 JUMPI POP PUSH2 0xB93 DUP3 PUSH2 0x12DD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBA7 DUP4 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC1A JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC11 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC75 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1394 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC87 DUP5 DUP5 DUP5 PUSH2 0x1559 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC98 PUSH2 0xC60 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCB6 PUSH2 0x8D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD15 JUMPI PUSH2 0xCD9 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xD31 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1676 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0xD44 DUP5 PUSH2 0x1692 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD95 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xDF8 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0xDEC JUMPI PUSH2 0xDEB PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0xDA3 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0xE23 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE53 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0xB 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF96 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF8D SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1087 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1245 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x10D8 PUSH2 0xC60 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10FA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1136 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 0x1133 SWAP2 SWAP1 PUSH2 0x2D15 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11BA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1166 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x116B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x11B2 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A9 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1243 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123A SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xD DUP1 SLOAD PUSH2 0x125A SWAP1 PUSH2 0x27A2 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 0x1286 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12D3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12A8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12D3 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 0x12B6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x780E9D6300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1350 JUMPI POP PUSH2 0x134F DUP3 PUSH2 0x17E5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x13CD JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1501 JUMPI PUSH1 0x0 PUSH2 0x13DD DUP5 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1448 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x145B JUMPI POP PUSH2 0x1459 DUP2 DUP5 PUSH2 0xA20 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x149D JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1494 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x14FF JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1567 DUP6 DUP6 DUP6 PUSH2 0x18C7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AB JUMPI PUSH2 0x15A6 DUP5 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x15EA JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15E9 JUMPI PUSH2 0x15E8 DUP2 DUP6 PUSH2 0x1B2A JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x162C JUMPI PUSH2 0x1627 DUP5 PUSH2 0x1C8B JUMP JUMPDEST PUSH2 0x166B JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x166A JUMPI PUSH2 0x1669 DUP6 DUP6 PUSH2 0x1D5C JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1680 DUP4 DUP4 PUSH2 0x1DE7 JUMP JUMPDEST PUSH2 0x168D PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x16F0 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x16E6 JUMPI PUSH2 0x16E5 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x172D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1723 JUMPI PUSH2 0x1722 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x175C JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x1752 JUMPI PUSH2 0x1751 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1785 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x177B JUMPI PUSH2 0x177A PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x17AA JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x17A0 JUMPI PUSH2 0x179F PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x17CD JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x17DC JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x18B0 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x18C0 JUMPI POP PUSH2 0x18BF DUP3 PUSH2 0x1EE0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x18D3 DUP5 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1915 JUMPI PUSH2 0x1914 DUP2 DUP5 DUP7 PUSH2 0x1F4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19A6 JUMPI PUSH2 0x1957 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1394 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A29 JUMPI PUSH1 0x1 PUSH1 0x3 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x8 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B35 DUP4 PUSH2 0x804 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1C1A JUMPI PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH1 0x6 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 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x1C9F SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CCF JUMPI PUSH2 0x1CCE PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CF1 JUMPI PUSH2 0x1CF0 PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x9 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x2D76 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1D69 DUP5 PUSH2 0x804 JUMP JUMPDEST PUSH2 0x1D73 SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1E59 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E50 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E67 DUP4 DUP4 PUSH1 0x0 PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1EDB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ED2 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST 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 PUSH2 0x1F55 DUP4 DUP4 DUP4 PUSH2 0x200E JUMP JUMPDEST PUSH2 0x2009 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1FCA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FC1 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2000 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2087 JUMPI POP PUSH2 0x2086 DUP5 DUP5 PUSH2 0xA20 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x20C5 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x20AD DUP4 PUSH2 0xC23 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2118 DUP2 PUSH2 0x20E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2135 DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2150 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x215F DUP5 DUP3 DUP6 ADD PUSH2 0x2126 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x217D DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2198 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2174 JUMP JUMPDEST 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 0x21D8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x21BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2200 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x220A DUP2 DUP6 PUSH2 0x21A9 JUMP JUMPDEST SWAP4 POP PUSH2 0x221A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2223 DUP2 PUSH2 0x21E4 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 0x2248 DUP2 DUP5 PUSH2 0x21F5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2263 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP2 EQ PUSH2 0x226E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2280 DUP2 PUSH2 0x225A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH2 0x229B PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22AA DUP5 DUP3 DUP6 ADD PUSH2 0x2271 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 PUSH2 0x22DE DUP3 PUSH2 0x22B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EE DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2309 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2318 DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2335 DUP2 PUSH2 0x230F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2352 JUMPI PUSH2 0x2351 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2360 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2371 DUP6 DUP3 DUP7 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2384 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x239F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23CC DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x23DD DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x23EE DUP7 DUP3 DUP8 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240E JUMPI PUSH2 0x240D PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x241C DUP5 DUP3 DUP6 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2467 DUP3 PUSH2 0x21E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2486 JUMPI PUSH2 0x2485 PUSH2 0x242F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2499 PUSH2 0x20CF JUMP JUMPDEST SWAP1 POP PUSH2 0x24A5 DUP3 DUP3 PUSH2 0x245E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24C5 JUMPI PUSH2 0x24C4 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x24CE DUP3 PUSH2 0x21E4 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 0x24FD PUSH2 0x24F8 DUP5 PUSH2 0x24AA JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x2524 DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2541 JUMPI PUSH2 0x2540 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2551 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2570 JUMPI PUSH2 0x256F PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x258E JUMPI PUSH2 0x258D PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x259A DUP5 DUP3 DUP6 ADD PUSH2 0x252C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25AC DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP2 EQ PUSH2 0x25B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25C9 DUP2 PUSH2 0x25A3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E6 JUMPI PUSH2 0x25E5 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25F4 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2605 DUP6 DUP3 DUP7 ADD PUSH2 0x25BA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x262A JUMPI PUSH2 0x2629 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2633 DUP3 PUSH2 0x21E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2653 PUSH2 0x264E DUP5 PUSH2 0x260F JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x266F JUMPI PUSH2 0x266E PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x267A DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2697 JUMPI PUSH2 0x2696 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26A7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2640 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x26CA JUMPI PUSH2 0x26C9 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26D8 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x26E9 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x26FA DUP8 DUP3 DUP9 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271B JUMPI PUSH2 0x271A PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x2727 DUP8 DUP3 DUP9 ADD PUSH2 0x2682 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x274A JUMPI PUSH2 0x2749 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2758 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2769 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x27BA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27CD JUMPI PUSH2 0x27CC PUSH2 0x2773 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x27E8 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x27F5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST PUSH2 0x2802 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x281F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x282C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST 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 0x286D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x289F JUMPI PUSH2 0x289E PUSH2 0x2833 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C0 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x28CA DUP2 DUP6 PUSH2 0x28AA JUMP JUMPDEST SWAP4 POP PUSH2 0x28DA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291C PUSH1 0x5 DUP4 PUSH2 0x28AA JUMP JUMPDEST SWAP2 POP PUSH2 0x2927 DUP3 PUSH2 0x28E6 JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x293E DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2949 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x29E5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x29A8 JUMP JUMPDEST PUSH2 0x29EF DUP7 DUP4 PUSH2 0x29A8 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2C PUSH2 0x2A27 PUSH2 0x2A22 DUP5 PUSH2 0x2250 JUMP JUMPDEST PUSH2 0x2A07 JUMP JUMPDEST PUSH2 0x2250 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A46 DUP4 PUSH2 0x2A11 JUMP JUMPDEST PUSH2 0x2A5A PUSH2 0x2A52 DUP3 PUSH2 0x2A33 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x29B5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2A6F PUSH2 0x2A62 JUMP JUMPDEST PUSH2 0x2A7A DUP2 DUP5 DUP5 PUSH2 0x2A3D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A9E JUMPI PUSH2 0x2A93 PUSH1 0x0 DUP3 PUSH2 0x2A67 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2A80 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2AE3 JUMPI PUSH2 0x2AB4 DUP2 PUSH2 0x2983 JUMP JUMPDEST PUSH2 0x2ABD DUP5 PUSH2 0x2998 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2ACC JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2AE0 PUSH2 0x2AD8 DUP6 PUSH2 0x2998 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2A7F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B06 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2AE8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B1F DUP4 DUP4 PUSH2 0x2AF5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B38 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B51 JUMPI PUSH2 0x2B50 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2B5B DUP3 SLOAD PUSH2 0x27A2 JUMP JUMPDEST PUSH2 0x2B66 DUP3 DUP3 DUP6 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2B99 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2B87 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2B91 DUP6 DUP3 PUSH2 0x2B13 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2BF9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2BA7 DUP7 PUSH2 0x2983 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BCF JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2BAA JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2BEC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2BE8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2AF5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0D DUP3 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C19 DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C24 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x2C86 DUP3 PUSH2 0x2C5F JUMP JUMPDEST PUSH2 0x2C90 DUP2 DUP6 PUSH2 0x2C6A JUMP JUMPDEST SWAP4 POP PUSH2 0x2CA0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2CA9 DUP2 PUSH2 0x21E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2CC9 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CD6 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CE3 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2CF5 DUP2 DUP5 PUSH2 0x2C7B JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2D0F DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2D39 DUP5 DUP3 DUP6 ADD PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D4D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D58 DUP4 PUSH2 0x2250 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D70 JUMPI PUSH2 0x2D6F PUSH2 0x2833 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 TIMESTAMP SELFBALANCE SMOD PUSH21 0xF454E660AA990254ED1F1D8F5271FFA5F567E4E79C PUSH25 0x81BF12EA2064736F6C634300081A0033000000000000000000 ", + "sourceMap": "428:1989:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:237;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:89:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3497:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3323:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2062:102:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4143:578:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1736:255:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;891::18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4787:132:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2236:226:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;779:107:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1271:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2185:118:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2518:93:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4985:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1846:327:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:153:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2178:237:18;2345:4;2372:36;2396:11;2372:23;:36::i;:::-;2365:43;;2178:237;;;:::o;2365:89:5:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;;3623:21;3636:7;3623:12;:21::i;:::-;3616:28;;3497:154;;;:::o;3323:113::-;3394:35;3403:2;3407:7;3416:12;:10;:12::i;:::-;3394:8;:35::i;:::-;3323:113;;:::o;2062:102:8:-;2114:7;2140:10;:17;;;;2133:24;;2062:102;:::o;4143:578:5:-;4251:1;4237:16;;:2;:16;;;4233:87;;4306:1;4276:33;;;;;;;;;;;:::i;:::-;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;4583:12;:10;:12::i;:::-;4562:7;:34::i;:::-;4538:58;;4627:4;4610:21;;:13;:21;;;4606:109;;4675:4;4681:7;4690:13;4654:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4606:109;4223:498;4143:578;;;:::o;1736:255:8:-;1824:7;1856:16;1866:5;1856:9;:16::i;:::-;1847:5;:25;1843:99;;1918:5;1925;1895:36;;;;;;;;;;;;:::i;:::-;;;;;;;;1843:99;1958:12;:19;1971:5;1958:19;;;;;;;;;;;;;;;:26;1978:5;1958:26;;;;;;;;;;;;1951:33;;1736:255;;;;:::o;891::18:-;1531:13:0;:11;:13::i;:::-;948:15:18::1;966:12;;:14;;;;;;;;;:::i;:::-;;;;;948:32;;990:22;1000:2;1004:7;990:9;:22::i;:::-;1022:117;1048:7;1093:25;1110:7;1093:16;:25::i;:::-;1076:52;;;;;;;;:::i;:::-;;;;;;;;;;;;;1022:12;:117::i;:::-;938:208;891:255:::0;:::o;4787:132:5:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2236:226:8:-;2302:7;2334:13;:11;:13::i;:::-;2325:5;:22;2321:101;;2401:1;2405:5;2370:41;;;;;;;;;;;;:::i;:::-;;;;;;;;2321:101;2438:10;2449:5;2438:17;;;;;;;;:::i;:::-;;;;;;;;;;2431:24;;2236:226;;;:::o;779:107:18:-;1531:13:0;:11;:13::i;:::-;871:8:18::1;852:16;:27;;;;;;:::i;:::-;;779:107:::0;:::o;1271:95::-;1321:7;1347:12;;1340:19;;1271:95;:::o;2185:118:5:-;2248:7;2274:22;2288:7;2274:13;:22::i;:::-;2267:29;;2185:118;;;:::o;1920:208::-;1983:7;2023:1;2006:19;;:5;:19;;;2002:87;;2075:1;2048:30;;;;;;;;;;;:::i;:::-;;;;;;;;2002:87;2105:9;:16;2115:5;2105:16;;;;;;;;;;;;;;;;2098:23;;1920:208;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2518:93:5:-;2565:13;2597:7;2590:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:93;:::o;3718:144::-;3803:52;3822:12;:10;:12::i;:::-;3836:8;3846;3803:18;:52::i;:::-;3718:144;;:::o;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;:::-;4985:208;;;;:::o;1846:327:18:-;1951:13;1976:21;2000:10;:8;:10::i;:::-;1976:34;;2063:1;2045:7;2039:21;:25;:127;;;;;;;;;;;;;;;;;2107:7;2116:18;:7;:16;:18::i;:::-;2090:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2039:127;2020:146;;;1846:327;;;:::o;3928:153:5:-;4016:4;4039:18;:25;4058:5;4039:25;;;;;;;;;;;;;;;:35;4065:8;4039:35;;;;;;;;;;;;;;;;;;;;;;;;;4032:42;;3928:153;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;937:207:9:-;1039:4;760:10;753:18;;1062:35;;;:11;:35;;;;:75;;;;1101:36;1125:11;1101:23;:36::i;:::-;1062:75;1055:82;;937:207;;;:::o;16138:241:5:-;16201:7;16220:13;16236:17;16245:7;16236:8;:17::i;:::-;16220:33;;16284:1;16267:19;;:5;:19;;;16263:88;;16332:7;16309:31;;;;;;;;;;;:::i;:::-;;;;;;;;16263:88;16367:5;16360:12;;;16138:241;;;:::o;5938:127::-;6008:7;6034:15;:24;6050:7;6034:24;;;;;;;;;;;;;;;;;;;;;6027:31;;5938:127;;;:::o;656:96:12:-;709:7;735:10;728:17;;656:96;:::o;14418:120:5:-;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;:::-;14418:120;;;:::o;1449:208:18:-;1592:7;1618:32;1632:2;1636:7;1645:4;1618:13;:32::i;:::-;1611:39;;1449:208;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;10633:100:5:-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;:::-;10633:100;;:::o;637:698:13:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;1922:167:9:-;2035:9;2013:10;:19;2024:7;2013:19;;;;;;;;;;;:31;;;;;;:::i;:::-;;2059:23;2074:7;2059:23;;;;;;:::i;:::-;;;;;;;;1922:167;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;15591:312:5:-;15718:1;15698:22;;:8;:22;;;15694:91;;15765:8;15743:31;;;;;;;;;;;:::i;:::-;;;;;;;;15694:91;15832:8;15794:18;:25;15813:5;15794:25;;;;;;;;;;;;;;;:35;15820:8;15794:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15877:8;15855:41;;15870:5;15855:41;;;15887:8;15855:41;;;;;;:::i;:::-;;;;;;;;15591:312;;;:::o;16918:782::-;17051:1;17034:2;:14;;;:18;17030:664;;;17088:2;17072:36;;;17109:12;:10;:12::i;:::-;17123:4;17129:7;17138:4;17072:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:1;17381:6;:13;:18;17377:293;;17452:2;17430:25;;;;;;;;;;;:::i;:::-;;;;;;;;17377:293;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;17200:41;;;17190:51;;;:6;:51;;;;17186:130;;17294:2;17272:25;;;;;;;;;;;:::i;:::-;;;;;;;;17186:130;17144:186;17030:664;16918:782;;;;:::o;1151:115:18:-;1211:13;1243:16;1236:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:115;:::o;1435:222:8:-;1537:4;1575:35;1560:50;;;:11;:50;;;;:90;;;;1614:36;1638:11;1614:23;:36::i;:::-;1560:90;1553:97;;1435:222;;;:::o;5707:115:5:-;5773:7;5799;:16;5807:7;5799:16;;;;;;;;;;;;;;;;;;;;;5792:23;;5707:115;;;:::o;14720:662::-;14880:9;:31;;;;14909:1;14893:18;;:4;:18;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;;15109:1;15093:18;;:4;:18;;;;:35;;;;;15124:4;15115:13;;:5;:13;;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15211:4;15189:27;;;;;;;;;;;:::i;:::-;;;;;;;;15089:142;15249:9;15245:81;;;15303:7;15299:2;15283:28;;15292:5;15283:28;;;;;;;;;;;;15245:81;14913:423;14876:460;15373:2;15346:15;:24;15362:7;15346:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14720:662;;;;:::o;2518:625:8:-;2613:7;2632:21;2656:32;2670:2;2674:7;2683:4;2656:13;:32::i;:::-;2632:56;;2728:1;2703:27;;:13;:27;;;2699:210;;2746:40;2778:7;2746:31;:40::i;:::-;2699:210;;;2824:2;2807:19;;:13;:19;;;2803:106;;2842:56;2875:13;2890:7;2842:32;:56::i;:::-;2803:106;2699:210;2936:1;2922:16;;:2;:16;;;2918:188;;2954:45;2991:7;2954:36;:45::i;:::-;2918:188;;;3037:2;3020:19;;:13;:19;;;3016:90;;3055:40;3083:2;3087:7;3055:27;:40::i;:::-;3016:90;2918:188;3123:13;3116:20;;;2518:625;;;;;:::o;10954:182:5:-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;:::-;10954:182;;;:::o;12214:916:16:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;1561:300:5:-;1663:4;1713:25;1698:40;;;:11;:40;;;;:104;;;;1769:33;1754:48;;;:11;:48;;;;1698:104;:156;;;;1818:36;1842:11;1818:23;:36::i;:::-;1698:156;1679:175;;1561:300;;;:::o;8838:795::-;8924:7;8943:12;8958:17;8967:7;8958:8;:17::i;:::-;8943:32;;9051:1;9035:18;;:4;:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;9031:86;9177:1;9161:18;;:4;:18;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;9387:1;9368:9;:15;9378:4;9368:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;9157:256;9441:1;9427:16;;:2;:16;;;9423:107;;9504:1;9487:9;:13;9497:2;9487:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9423:107;9559:2;9540:7;:16;9548:7;9540:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9596:7;9592:2;9577:27;;9586:4;9577:27;;;;;;;;;;;;9622:4;9615:11;;;8838:795;;;;;:::o;3846:161:8:-;3949:10;:17;;;;3922:15;:24;3938:7;3922:24;;;;;;;;;;;:44;;;;3976:10;3992:7;3976:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3846:161;:::o;4624:959::-;4886:22;4911:15;4921:4;4911:9;:15::i;:::-;4886:40;;4936:18;4957:17;:26;4975:7;4957:26;;;;;;;;;;;;4936:47;;5101:14;5087:10;:28;5083:323;;5131:19;5153:12;:18;5166:4;5153:18;;;;;;;;;;;;;;;:34;5172:14;5153:34;;;;;;;;;;;;5131:56;;5235:11;5202:12;:18;5215:4;5202:18;;;;;;;;;;;;;;;:30;5221:10;5202:30;;;;;;;;;;;:44;;;;5351:10;5318:17;:30;5336:11;5318:30;;;;;;;;;;;:43;;;;5117:289;5083:323;5499:17;:26;5517:7;5499:26;;;;;;;;;;;5492:33;;;5542:12;:18;5555:4;5542:18;;;;;;;;;;;;;;;:34;5561:14;5542:34;;;;;;;;;;;5535:41;;;4705:878;;4624:959;;:::o;5871:1061::-;6120:22;6165:1;6145:10;:17;;;;:21;;;;:::i;:::-;6120:46;;6176:18;6197:15;:24;6213:7;6197:24;;;;;;;;;;;;6176:45;;6543:19;6565:10;6576:14;6565:26;;;;;;;;:::i;:::-;;;;;;;;;;6543:48;;6627:11;6602:10;6613;6602:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;6737:10;6706:15;:28;6722:11;6706:28;;;;;;;;;;;:41;;;;6875:15;:24;6891:7;6875:24;;;;;;;;;;;6868:31;;;6909:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5942:990;;;5871:1061;:::o;3437:214::-;3521:14;3554:1;3538:13;3548:2;3538:9;:13::i;:::-;:17;;;;:::i;:::-;3521:34;;3592:7;3565:12;:16;3578:2;3565:16;;;;;;;;;;;;;;;:24;3582:6;3565:24;;;;;;;;;;;:34;;;;3638:6;3609:17;:26;3627:7;3609:26;;;;;;;;;;;:35;;;;3511:140;3437:214;;:::o;9955:327:5:-;10036:1;10022:16;;:2;:16;;;10018:87;;10091:1;10061:33;;;;;;;;;;;:::i;:::-;;;;;;;;10018:87;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;;10209:1;10184:27;;:13;:27;;;10180:96;;10262:1;10234:31;;;;;;;;;;;:::i;:::-;;;;;;;;10180:96;10008:274;9955:327;;:::o;762:146:14:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;7082:368:5:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;7269:1;7252:19;;:5;:19;;;7248:186;;7321:7;7298:31;;;;;;;;;;;:::i;:::-;;;;;;;;7248:186;7402:7;7411;7375:44;;;;;;;;;;;;:::i;:::-;;;;;;;;7189:255;7082:368;;;:::o;6376:272::-;6479:4;6533:1;6514:21;;:7;:21;;;;:127;;;;;6561:7;6552:16;;:5;:16;;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:52;:88;;;;6633:7;6608:32;;:21;6621:7;6608:12;:21::i;:::-;:32;;;6552:88;6514:127;6495:146;;6376:272;;;;;:::o;7:75:19:-;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:248::-;1880:1;1890:113;1904:6;1901:1;1898:13;1890:113;;;1989:1;1984:3;1980:11;1974:18;1970:1;1965:3;1961:11;1954:39;1926:2;1923:1;1919:10;1914:15;;1890:113;;;2037:1;2028:6;2023:3;2019:16;2012:27;1860:186;1798:248;;;:::o;2052:102::-;2093:6;2144:2;2140:7;2135:2;2128:5;2124:14;2120:28;2110:38;;2052:102;;;:::o;2160:377::-;2248:3;2276:39;2309:5;2276:39;:::i;:::-;2331:71;2395:6;2390:3;2331:71;:::i;:::-;2324:78;;2411:65;2469:6;2464:3;2457:4;2450:5;2446:16;2411:65;:::i;:::-;2501:29;2523:6;2501:29;:::i;:::-;2496:3;2492:39;2485:46;;2252:285;2160:377;;;;:::o;2543:313::-;2656:4;2694:2;2683:9;2679:18;2671:26;;2743:9;2737:4;2733:20;2729:1;2718:9;2714:17;2707:47;2771:78;2844:4;2835:6;2771:78;:::i;:::-;2763:86;;2543:313;;;;:::o;2862:77::-;2899:7;2928:5;2917:16;;2862:77;;;:::o;2945:122::-;3018:24;3036:5;3018:24;:::i;:::-;3011:5;3008:35;2998:63;;3057:1;3054;3047:12;2998:63;2945:122;:::o;3073:139::-;3119:5;3157:6;3144:20;3135:29;;3173:33;3200:5;3173:33;:::i;:::-;3073:139;;;;:::o;3218:329::-;3277:6;3326:2;3314:9;3305:7;3301:23;3297:32;3294:119;;;3332:79;;:::i;:::-;3294:119;3452:1;3477:53;3522:7;3513:6;3502:9;3498:22;3477:53;:::i;:::-;3467:63;;3423:117;3218:329;;;;:::o;3553:126::-;3590:7;3630:42;3623:5;3619:54;3608:65;;3553:126;;;:::o;3685:96::-;3722:7;3751:24;3769:5;3751:24;:::i;:::-;3740:35;;3685:96;;;:::o;3787:118::-;3874:24;3892:5;3874:24;:::i;:::-;3869:3;3862:37;3787:118;;:::o;3911:222::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:71;4123:1;4112:9;4108:17;4099:6;4055:71;:::i;:::-;3911:222;;;;:::o;4139:122::-;4212:24;4230:5;4212:24;:::i;:::-;4205:5;4202:35;4192:63;;4251:1;4248;4241:12;4192:63;4139:122;:::o;4267:139::-;4313:5;4351:6;4338:20;4329:29;;4367:33;4394:5;4367:33;:::i;:::-;4267:139;;;;:::o;4412:474::-;4480:6;4488;4537:2;4525:9;4516:7;4512:23;4508:32;4505:119;;;4543:79;;:::i;:::-;4505:119;4663:1;4688:53;4733:7;4724:6;4713:9;4709:22;4688:53;:::i;:::-;4678:63;;4634:117;4790:2;4816:53;4861:7;4852:6;4841:9;4837:22;4816:53;:::i;:::-;4806:63;;4761:118;4412:474;;;;;:::o;4892:118::-;4979:24;4997:5;4979:24;:::i;:::-;4974:3;4967:37;4892:118;;:::o;5016:222::-;5109:4;5147:2;5136:9;5132:18;5124:26;;5160:71;5228:1;5217:9;5213:17;5204:6;5160:71;:::i;:::-;5016:222;;;;:::o;5244:619::-;5321:6;5329;5337;5386:2;5374:9;5365:7;5361:23;5357:32;5354:119;;;5392:79;;:::i;:::-;5354:119;5512:1;5537:53;5582:7;5573:6;5562:9;5558:22;5537:53;:::i;:::-;5527:63;;5483:117;5639:2;5665:53;5710:7;5701:6;5690:9;5686:22;5665:53;:::i;:::-;5655:63;;5610:118;5767:2;5793:53;5838:7;5829:6;5818:9;5814:22;5793:53;:::i;:::-;5783:63;;5738:118;5244:619;;;;;:::o;5869:329::-;5928:6;5977:2;5965:9;5956:7;5952:23;5948:32;5945:119;;;5983:79;;:::i;:::-;5945:119;6103:1;6128:53;6173:7;6164:6;6153:9;6149:22;6128:53;:::i;:::-;6118:63;;6074:117;5869:329;;;;:::o;6204:117::-;6313:1;6310;6303:12;6327:117;6436:1;6433;6426:12;6450:180;6498:77;6495:1;6488:88;6595:4;6592:1;6585:15;6619:4;6616:1;6609:15;6636:281;6719:27;6741:4;6719:27;:::i;:::-;6711:6;6707:40;6849:6;6837:10;6834:22;6813:18;6801:10;6798:34;6795:62;6792:88;;;6860:18;;:::i;:::-;6792:88;6900:10;6896:2;6889:22;6679:238;6636:281;;:::o;6923:129::-;6957:6;6984:20;;:::i;:::-;6974:30;;7013:33;7041:4;7033:6;7013:33;:::i;:::-;6923:129;;;:::o;7058:308::-;7120:4;7210:18;7202:6;7199:30;7196:56;;;7232:18;;:::i;:::-;7196:56;7270:29;7292:6;7270:29;:::i;:::-;7262:37;;7354:4;7348;7344:15;7336:23;;7058:308;;;:::o;7372:148::-;7470:6;7465:3;7460;7447:30;7511:1;7502:6;7497:3;7493:16;7486:27;7372:148;;;:::o;7526:425::-;7604:5;7629:66;7645:49;7687:6;7645:49;:::i;:::-;7629:66;:::i;:::-;7620:75;;7718:6;7711:5;7704:21;7756:4;7749:5;7745:16;7794:3;7785:6;7780:3;7776:16;7773:25;7770:112;;;7801:79;;:::i;:::-;7770:112;7891:54;7938:6;7933:3;7928;7891:54;:::i;:::-;7610:341;7526:425;;;;;:::o;7971:340::-;8027:5;8076:3;8069:4;8061:6;8057:17;8053:27;8043:122;;8084:79;;:::i;:::-;8043:122;8201:6;8188:20;8226:79;8301:3;8293:6;8286:4;8278:6;8274:17;8226:79;:::i;:::-;8217:88;;8033:278;7971:340;;;;:::o;8317:509::-;8386:6;8435:2;8423:9;8414:7;8410:23;8406:32;8403:119;;;8441:79;;:::i;:::-;8403:119;8589:1;8578:9;8574:17;8561:31;8619:18;8611:6;8608:30;8605:117;;;8641:79;;:::i;:::-;8605:117;8746:63;8801:7;8792:6;8781:9;8777:22;8746:63;:::i;:::-;8736:73;;8532:287;8317:509;;;;:::o;8832:116::-;8902:21;8917:5;8902:21;:::i;:::-;8895:5;8892:32;8882:60;;8938:1;8935;8928:12;8882:60;8832:116;:::o;8954:133::-;8997:5;9035:6;9022:20;9013:29;;9051:30;9075:5;9051:30;:::i;:::-;8954:133;;;;:::o;9093:468::-;9158:6;9166;9215:2;9203:9;9194:7;9190:23;9186:32;9183:119;;;9221:79;;:::i;:::-;9183:119;9341:1;9366:53;9411:7;9402:6;9391:9;9387:22;9366:53;:::i;:::-;9356:63;;9312:117;9468:2;9494:50;9536:7;9527:6;9516:9;9512:22;9494:50;:::i;:::-;9484:60;;9439:115;9093:468;;;;;:::o;9567:307::-;9628:4;9718:18;9710:6;9707:30;9704:56;;;9740:18;;:::i;:::-;9704:56;9778:29;9800:6;9778:29;:::i;:::-;9770:37;;9862:4;9856;9852:15;9844:23;;9567:307;;;:::o;9880:423::-;9957:5;9982:65;9998:48;10039:6;9998:48;:::i;:::-;9982:65;:::i;:::-;9973:74;;10070:6;10063:5;10056:21;10108:4;10101:5;10097:16;10146:3;10137:6;10132:3;10128:16;10125:25;10122:112;;;10153:79;;:::i;:::-;10122:112;10243:54;10290:6;10285:3;10280;10243:54;:::i;:::-;9963:340;9880:423;;;;;:::o;10322:338::-;10377:5;10426:3;10419:4;10411:6;10407:17;10403:27;10393:122;;10434:79;;:::i;:::-;10393:122;10551:6;10538:20;10576:78;10650:3;10642:6;10635:4;10627:6;10623:17;10576:78;:::i;:::-;10567:87;;10383:277;10322:338;;;;:::o;10666:943::-;10761:6;10769;10777;10785;10834:3;10822:9;10813:7;10809:23;10805:33;10802:120;;;10841:79;;:::i;:::-;10802:120;10961:1;10986:53;11031:7;11022:6;11011:9;11007:22;10986:53;:::i;:::-;10976:63;;10932:117;11088:2;11114:53;11159:7;11150:6;11139:9;11135:22;11114:53;:::i;:::-;11104:63;;11059:118;11216:2;11242:53;11287:7;11278:6;11267:9;11263:22;11242:53;:::i;:::-;11232:63;;11187:118;11372:2;11361:9;11357:18;11344:32;11403:18;11395:6;11392:30;11389:117;;;11425:79;;:::i;:::-;11389:117;11530:62;11584:7;11575:6;11564:9;11560:22;11530:62;:::i;:::-;11520:72;;11315:287;10666:943;;;;;;;:::o;11615:474::-;11683:6;11691;11740:2;11728:9;11719:7;11715:23;11711:32;11708:119;;;11746:79;;:::i;:::-;11708:119;11866:1;11891:53;11936:7;11927:6;11916:9;11912:22;11891:53;:::i;:::-;11881:63;;11837:117;11993:2;12019:53;12064:7;12055:6;12044:9;12040:22;12019:53;:::i;:::-;12009:63;;11964:118;11615:474;;;;;:::o;12095:180::-;12143:77;12140:1;12133:88;12240:4;12237:1;12230:15;12264:4;12261:1;12254:15;12281:320;12325:6;12362:1;12356:4;12352:12;12342:22;;12409:1;12403:4;12399:12;12430:18;12420:81;;12486:4;12478:6;12474:17;12464:27;;12420:81;12548:2;12540:6;12537:14;12517:18;12514:38;12511:84;;12567:18;;:::i;:::-;12511:84;12332:269;12281:320;;;:::o;12607:442::-;12756:4;12794:2;12783:9;12779:18;12771:26;;12807:71;12875:1;12864:9;12860:17;12851:6;12807:71;:::i;:::-;12888:72;12956:2;12945:9;12941:18;12932:6;12888:72;:::i;:::-;12970;13038:2;13027:9;13023:18;13014:6;12970:72;:::i;:::-;12607:442;;;;;;:::o;13055:332::-;13176:4;13214:2;13203:9;13199:18;13191:26;;13227:71;13295:1;13284:9;13280:17;13271:6;13227:71;:::i;:::-;13308:72;13376:2;13365:9;13361:18;13352:6;13308:72;:::i;:::-;13055:332;;;;;:::o;13393:180::-;13441:77;13438:1;13431:88;13538:4;13535:1;13528:15;13562:4;13559:1;13552:15;13579:233;13618:3;13641:24;13659:5;13641:24;:::i;:::-;13632:33;;13687:66;13680:5;13677:77;13674:103;;13757:18;;:::i;:::-;13674:103;13804:1;13797:5;13793:13;13786:20;;13579:233;;;:::o;13818:148::-;13920:11;13957:3;13942:18;;13818:148;;;;:::o;13972:390::-;14078:3;14106:39;14139:5;14106:39;:::i;:::-;14161:89;14243:6;14238:3;14161:89;:::i;:::-;14154:96;;14259:65;14317:6;14312:3;14305:4;14298:5;14294:16;14259:65;:::i;:::-;14349:6;14344:3;14340:16;14333:23;;14082:280;13972:390;;;;:::o;14368:155::-;14508:7;14504:1;14496:6;14492:14;14485:31;14368:155;:::o;14529:400::-;14689:3;14710:84;14792:1;14787:3;14710:84;:::i;:::-;14703:91;;14803:93;14892:3;14803:93;:::i;:::-;14921:1;14916:3;14912:11;14905:18;;14529:400;;;:::o;14935:541::-;15168:3;15190:95;15281:3;15272:6;15190:95;:::i;:::-;15183:102;;15302:148;15446:3;15302:148;:::i;:::-;15295:155;;15467:3;15460:10;;14935:541;;;;:::o;15482:180::-;15530:77;15527:1;15520:88;15627:4;15624:1;15617:15;15651:4;15648:1;15641:15;15668:141;15717:4;15740:3;15732:11;;15763:3;15760:1;15753:14;15797:4;15794:1;15784:18;15776:26;;15668:141;;;:::o;15815:93::-;15852:6;15899:2;15894;15887:5;15883:14;15879:23;15869:33;;15815:93;;;:::o;15914:107::-;15958:8;16008:5;16002:4;15998:16;15977:37;;15914:107;;;;:::o;16027:393::-;16096:6;16146:1;16134:10;16130:18;16169:97;16199:66;16188:9;16169:97;:::i;:::-;16287:39;16317:8;16306:9;16287:39;:::i;:::-;16275:51;;16359:4;16355:9;16348:5;16344:21;16335:30;;16408:4;16398:8;16394:19;16387:5;16384:30;16374:40;;16103:317;;16027:393;;;;;:::o;16426:60::-;16454:3;16475:5;16468:12;;16426:60;;;:::o;16492:142::-;16542:9;16575:53;16593:34;16602:24;16620:5;16602:24;:::i;:::-;16593:34;:::i;:::-;16575:53;:::i;:::-;16562:66;;16492:142;;;:::o;16640:75::-;16683:3;16704:5;16697:12;;16640:75;;;:::o;16721:269::-;16831:39;16862:7;16831:39;:::i;:::-;16892:91;16941:41;16965:16;16941:41;:::i;:::-;16933:6;16926:4;16920:11;16892:91;:::i;:::-;16886:4;16879:105;16797:193;16721:269;;;:::o;16996:73::-;17041:3;16996:73;:::o;17075:189::-;17152:32;;:::i;:::-;17193:65;17251:6;17243;17237:4;17193:65;:::i;:::-;17128:136;17075:189;;:::o;17270:186::-;17330:120;17347:3;17340:5;17337:14;17330:120;;;17401:39;17438:1;17431:5;17401:39;:::i;:::-;17374:1;17367:5;17363:13;17354:22;;17330:120;;;17270:186;;:::o;17462:543::-;17563:2;17558:3;17555:11;17552:446;;;17597:38;17629:5;17597:38;:::i;:::-;17681:29;17699:10;17681:29;:::i;:::-;17671:8;17667:44;17864:2;17852:10;17849:18;17846:49;;;17885:8;17870:23;;17846:49;17908:80;17964:22;17982:3;17964:22;:::i;:::-;17954:8;17950:37;17937:11;17908:80;:::i;:::-;17567:431;;17552:446;17462:543;;;:::o;18011:117::-;18065:8;18115:5;18109:4;18105:16;18084:37;;18011:117;;;;:::o;18134:169::-;18178:6;18211:51;18259:1;18255:6;18247:5;18244:1;18240:13;18211:51;:::i;:::-;18207:56;18292:4;18286;18282:15;18272:25;;18185:118;18134:169;;;;:::o;18308:295::-;18384:4;18530:29;18555:3;18549:4;18530:29;:::i;:::-;18522:37;;18592:3;18589:1;18585:11;18579:4;18576:21;18568:29;;18308:295;;;;:::o;18608:1395::-;18725:37;18758:3;18725:37;:::i;:::-;18827:18;18819:6;18816:30;18813:56;;;18849:18;;:::i;:::-;18813:56;18893:38;18925:4;18919:11;18893:38;:::i;:::-;18978:67;19038:6;19030;19024:4;18978:67;:::i;:::-;19072:1;19096:4;19083:17;;19128:2;19120:6;19117:14;19145:1;19140:618;;;;19802:1;19819:6;19816:77;;;19868:9;19863:3;19859:19;19853:26;19844:35;;19816:77;19919:67;19979:6;19972:5;19919:67;:::i;:::-;19913:4;19906:81;19775:222;19110:887;;19140:618;19192:4;19188:9;19180:6;19176:22;19226:37;19258:4;19226:37;:::i;:::-;19285:1;19299:208;19313:7;19310:1;19307:14;19299:208;;;19392:9;19387:3;19383:19;19377:26;19369:6;19362:42;19443:1;19435:6;19431:14;19421:24;;19490:2;19479:9;19475:18;19462:31;;19336:4;19333:1;19329:12;19324:17;;19299:208;;;19535:6;19526:7;19523:19;19520:179;;;19593:9;19588:3;19584:19;19578:26;19636:48;19678:4;19670:6;19666:17;19655:9;19636:48;:::i;:::-;19628:6;19621:64;19543:156;19520:179;19745:1;19741;19733:6;19729:14;19725:22;19719:4;19712:36;19147:611;;;19110:887;;18700:1303;;;18608:1395;;:::o;20009:701::-;20290:3;20312:95;20403:3;20394:6;20312:95;:::i;:::-;20305:102;;20424:95;20515:3;20506:6;20424:95;:::i;:::-;20417:102;;20536:148;20680:3;20536:148;:::i;:::-;20529:155;;20701:3;20694:10;;20009:701;;;;;:::o;20716:180::-;20764:77;20761:1;20754:88;20861:4;20858:1;20851:15;20885:4;20882:1;20875:15;20902:98;20953:6;20987:5;20981:12;20971:22;;20902:98;;;:::o;21006:168::-;21089:11;21123:6;21118:3;21111:19;21163:4;21158:3;21154:14;21139:29;;21006:168;;;;:::o;21180:373::-;21266:3;21294:38;21326:5;21294:38;:::i;:::-;21348:70;21411:6;21406:3;21348:70;:::i;:::-;21341:77;;21427:65;21485:6;21480:3;21473:4;21466:5;21462:16;21427:65;:::i;:::-;21517:29;21539:6;21517:29;:::i;:::-;21512:3;21508:39;21501:46;;21270:283;21180:373;;;;:::o;21559:640::-;21754:4;21792:3;21781:9;21777:19;21769:27;;21806:71;21874:1;21863:9;21859:17;21850:6;21806:71;:::i;:::-;21887:72;21955:2;21944:9;21940:18;21931:6;21887:72;:::i;:::-;21969;22037:2;22026:9;22022:18;22013:6;21969:72;:::i;:::-;22088:9;22082:4;22078:20;22073:2;22062:9;22058:18;22051:48;22116:76;22187:4;22178:6;22116:76;:::i;:::-;22108:84;;21559:640;;;;;;;:::o;22205:141::-;22261:5;22292:6;22286:13;22277:22;;22308:32;22334:5;22308:32;:::i;:::-;22205:141;;;;:::o;22352:349::-;22421:6;22470:2;22458:9;22449:7;22445:23;22441:32;22438:119;;;22476:79;;:::i;:::-;22438:119;22596:1;22621:63;22676:7;22667:6;22656:9;22652:22;22621:63;:::i;:::-;22611:73;;22567:127;22352:349;;;;:::o;22707:194::-;22747:4;22767:20;22785:1;22767:20;:::i;:::-;22762:25;;22801:20;22819:1;22801:20;:::i;:::-;22796:25;;22845:1;22842;22838:9;22830:17;;22869:1;22863:4;22860:11;22857:37;;;22874:18;;:::i;:::-;22857:37;22707:194;;;;:::o;22907:180::-;22955:77;22952:1;22945:88;23052:4;23049:1;23042:15;23076:4;23073:1;23066:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "2347800", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "approve(address,uint256)": "infinite", + "balanceOf(address)": "infinite", + "getApproved(uint256)": "infinite", + "getCurrentTokenId()": "2460", + "isApprovedForAll(address,address)": "infinite", + "name()": "infinite", + "owner()": "2633", + "ownerOf(uint256)": "infinite", + "renounceOwnership()": "infinite", + "safeMint(address)": "infinite", + "safeTransferFrom(address,address,uint256)": "infinite", + "safeTransferFrom(address,address,uint256,bytes)": "infinite", + "setApprovalForAll(address,bool)": "infinite", + "setBaseURI(string)": "infinite", + "supportsInterface(bytes4)": "1024", + "symbol()": "infinite", + "tokenByIndex(uint256)": "infinite", + "tokenOfOwnerByIndex(address,uint256)": "infinite", + "tokenURI(uint256)": "infinite", + "totalSupply()": "2557", + "transferFrom(address,address,uint256)": "infinite", + "transferOwnership(address)": "infinite" + }, + "internal": { + "_baseURI()": "infinite", + "_increaseBalance(address,uint128)": "infinite", + "_update(address,uint256,address)": "infinite" + } + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "getCurrentTokenId()": "56189236", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "ownerOf(uint256)": "6352211e", + "renounceOwnership()": "715018a6", + "safeMint(address)": "40d097c3", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "setBaseURI(string)": "55f804b3", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenByIndex(uint256)": "4f6ccce7", + "tokenOfOwnerByIndex(address,uint256)": "2f745c59", + "tokenURI(uint256)": "c87b56dd", + "totalSupply()": "18160ddd", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b" + } + }, + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "baseURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ERC721EnumerableForbiddenBatchMint", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "ERC721OutOfBoundsIndex", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCurrentTokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "safeMint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "baseURI_", + "type": "string" + } + ], + "name": "setBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/CoreNFT_metadata.json b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/CoreNFT_metadata.json new file mode 100644 index 00000000..51a3fd27 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/CoreNFT_metadata.json @@ -0,0 +1,1014 @@ +{ + "compiler": { + "version": "0.8.26+commit.8a97fa7a" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "baseURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ERC721EnumerableForbiddenBatchMint", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "ERC721OutOfBoundsIndex", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCurrentTokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "safeMint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "baseURI_", + "type": "string" + } + ], + "name": "setBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "errors": { + "ERC721EnumerableForbiddenBatchMint()": [ + { + "details": "Batch mint is not allowed." + } + ], + "ERC721IncorrectOwner(address,uint256,address)": [ + { + "details": "Indicates an error related to the ownership over a particular token. Used in transfers.", + "params": { + "owner": "Address of the current owner of a token.", + "sender": "Address whose tokens are being transferred.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InsufficientApproval(address,uint256)": [ + { + "details": "Indicates a failure with the `operator`’s approval. Used in transfers.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC721InvalidOperator(address)": [ + { + "details": "Indicates a failure with the `operator` to be approved. Used in approvals.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC721InvalidOwner(address)": [ + { + "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.", + "params": { + "owner": "Address of the current owner of a token." + } + } + ], + "ERC721InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC721InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC721NonexistentToken(uint256)": [ + { + "details": "Indicates a `tokenId` whose `owner` is the zero address.", + "params": { + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721OutOfBoundsIndex(address,uint256)": [ + { + "details": "An `owner`'s token query was out of bounds for `index`. NOTE: The owner being `address(0)` indicates a global out of bounds index." + } + ], + "OwnableInvalidOwner(address)": [ + { + "details": "The owner is not a valid owner account. (eg. `address(0)`)" + } + ], + "OwnableUnauthorizedAccount(address)": [ + { + "details": "The caller account is not authorized to perform an operation." + } + ] + }, + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "BatchMetadataUpdate(uint256,uint256)": { + "details": "This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs." + }, + "MetadataUpdate(uint256)": { + "details": "This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenByIndex(uint256)": { + "details": "See {IERC721Enumerable-tokenByIndex}." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "totalSupply()": { + "details": "See {IERC721Enumerable-totalSupply}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "contracts/NFT.sol": "CoreNFT" + }, + "evmVersion": "paris", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "keccak256": "0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb", + "license": "MIT", + "urls": [ + "bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6", + "dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a" + ] + }, + "@openzeppelin/contracts/interfaces/IERC165.sol": { + "keccak256": "0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724", + "license": "MIT", + "urls": [ + "bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a", + "dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS" + ] + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "keccak256": "0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44", + "license": "MIT", + "urls": [ + "bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd", + "dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc" + ] + }, + "@openzeppelin/contracts/interfaces/IERC721.sol": { + "keccak256": "0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d", + "license": "MIT", + "urls": [ + "bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b", + "dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5" + ] + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "keccak256": "0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7", + "license": "MIT", + "urls": [ + "bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f", + "dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt" + ] + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "keccak256": "0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784", + "license": "MIT", + "urls": [ + "bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd", + "dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS" + ] + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "keccak256": "0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4", + "license": "MIT", + "urls": [ + "bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7", + "dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n" + ] + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "keccak256": "0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49", + "license": "MIT", + "urls": [ + "bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22", + "dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i" + ] + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol": { + "keccak256": "0x36797469c391ea5ba27408e6ca8adf0824ba6f3adea9c139be18bd6f63232c16", + "license": "MIT", + "urls": [ + "bzz-raw://0dcf8bb9f7c29d678de34a051b4a71cf27ae56464678696c6913cbbfc75d548a", + "dweb:/ipfs/QmSfdgU9V2dXh9oajUxgF9hU1aPnpd1PEMtcchoANsCNmW" + ] + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "keccak256": "0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670", + "license": "MIT", + "urls": [ + "bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96", + "dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z" + ] + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol": { + "keccak256": "0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de", + "license": "MIT", + "urls": [ + "bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff", + "dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g" + ] + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "keccak256": "0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1", + "license": "MIT", + "urls": [ + "bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02", + "dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE" + ] + }, + "@openzeppelin/contracts/utils/Context.sol": { + "keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2", + "license": "MIT", + "urls": [ + "bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12", + "dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF" + ] + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "keccak256": "0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792", + "license": "MIT", + "urls": [ + "bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453", + "dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i" + ] + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "keccak256": "0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133", + "license": "MIT", + "urls": [ + "bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8", + "dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA" + ] + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "keccak256": "0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b", + "license": "MIT", + "urls": [ + "bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df", + "dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL" + ] + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "keccak256": "0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d", + "license": "MIT", + "urls": [ + "bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875", + "dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L" + ] + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72", + "license": "MIT", + "urls": [ + "bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc", + "dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT" + ] + }, + "contracts/NFT.sol": { + "keccak256": "0x462f5ae5a97c5a830edc7e9800d1f83e05ee958ffd06aac0ad48e2bd3e26956c", + "license": "MIT", + "urls": [ + "bzz-raw://f4b88a54e1cc32f0c29110b954c52464b08142bdc3e0ac1c45d1132c8de73661", + "dweb:/ipfs/QmeRb1BAZ5iP6kFfiNBtvv5YpDmohuiDz5qR4zkpNXT1rr" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/build-info/329de119846abab62fe28d2887ed9e0b.json b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/build-info/329de119846abab62fe28d2887ed9e0b.json new file mode 100644 index 00000000..fd6f7764 --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/contracts/artifacts/build-info/329de119846abab62fe28d2887ed9e0b.json @@ -0,0 +1,124605 @@ +{ + "id": "329de119846abab62fe28d2887ed9e0b", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.26", + "solcLongVersion": "0.8.26+commit.8a97fa7a", + "input": { + "language": "Solidity", + "sources": { + "contracts/NFT.sol": { + "content": "// SPDX-License-Identifier: MIT\n// Compatible with OpenZeppelin Contracts ^5.0.0\npragma solidity ^0.8.20;\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\n\ncontract CoreNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {\n using Strings for uint256;\n uint256 private _nextTokenId;\n string private _baseURIExtended;\n constructor(\n string memory baseURI_\n ) ERC721(\"CoreNFT\", \"CORE\") Ownable(msg.sender) {\n _baseURIExtended = baseURI_;\n _nextTokenId = 0;\n }\n function setBaseURI(string memory baseURI_) external onlyOwner {\n _baseURIExtended = baseURI_;\n }\n function safeMint(address to) public onlyOwner {\n uint256 tokenId = _nextTokenId++;\n _safeMint(to, tokenId);\n _setTokenURI(\n tokenId,\n string(abi.encodePacked(Strings.toString(tokenId), \".json\"))\n );\n }\n function _baseURI() internal view virtual override returns (string memory) {\n return _baseURIExtended;\n }\n function getCurrentTokenId() public view returns (uint256) {\n return _nextTokenId;\n }\n // The following functions have to be overridden as required by Solidity.\n function _update(\n address to,\n uint256 tokenId,\n address auth\n ) internal override(ERC721, ERC721Enumerable) returns (address) {\n return super._update(to, tokenId, auth);\n }\n function _increaseBalance(\n address account,\n uint128 value\n ) internal override(ERC721, ERC721Enumerable) {\n super._increaseBalance(account, value);\n }\n function tokenURI(\n uint256 tokenId\n ) public view override(ERC721, ERC721URIStorage) returns (string memory) {\n string memory baseURI = _baseURI();\n return\n bytes(baseURI).length > 0\n ? string(abi.encodePacked(baseURI, tokenId.toString(), \".json\"))\n : \"\";\n }\n function supportsInterface(\n bytes4 interfaceId\n )\n public\n view\n override(ERC721, ERC721Enumerable, ERC721URIStorage)\n returns (bool)\n {\n return super.supportsInterface(interfaceId);\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" + }, + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {Strings} from \"../../../utils/Strings.sol\";\nimport {IERC4906} from \"../../../interfaces/IERC4906.sol\";\nimport {IERC165} from \"../../../interfaces/IERC165.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is IERC4906, ERC721 {\n using Strings for uint256;\n\n // Interface ID as defined in ERC-4906. This does not correspond to a traditional interface ID as ERC-4906 only\n // defines events and does not include any external function.\n bytes4 private constant ERC4906_INTERFACE_ID = bytes4(0x49064906);\n\n // Optional mapping for token URIs\n mapping(uint256 tokenId => string) private _tokenURIs;\n\n /**\n * @dev See {IERC165-supportsInterface}\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {\n return interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireOwned(tokenId);\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = _baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via string.concat).\n if (bytes(_tokenURI).length > 0) {\n return string.concat(base, _tokenURI);\n }\n\n return super.tokenURI(tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Emits {MetadataUpdate}.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n _tokenURIs[tokenId] = _tokenURI;\n emit MetadataUpdate(tokenId);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721Enumerable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {IERC721Enumerable} from \"./IERC721Enumerable.sol\";\nimport {IERC165} from \"../../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds enumerability\n * of all the token ids in the contract as well as all token ids owned by each account.\n *\n * CAUTION: `ERC721` extensions that implement custom `balanceOf` logic, such as `ERC721Consecutive`,\n * interfere with enumerability and should not be used together with `ERC721Enumerable`.\n */\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\n mapping(address owner => mapping(uint256 index => uint256)) private _ownedTokens;\n mapping(uint256 tokenId => uint256) private _ownedTokensIndex;\n\n uint256[] private _allTokens;\n mapping(uint256 tokenId => uint256) private _allTokensIndex;\n\n /**\n * @dev An `owner`'s token query was out of bounds for `index`.\n *\n * NOTE: The owner being `address(0)` indicates a global out of bounds index.\n */\n error ERC721OutOfBoundsIndex(address owner, uint256 index);\n\n /**\n * @dev Batch mint is not allowed.\n */\n error ERC721EnumerableForbiddenBatchMint();\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\n return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual returns (uint256) {\n if (index >= balanceOf(owner)) {\n revert ERC721OutOfBoundsIndex(owner, index);\n }\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual returns (uint256) {\n if (index >= totalSupply()) {\n revert ERC721OutOfBoundsIndex(address(0), index);\n }\n return _allTokens[index];\n }\n\n /**\n * @dev See {ERC721-_update}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual override returns (address) {\n address previousOwner = super._update(to, tokenId, auth);\n\n if (previousOwner == address(0)) {\n _addTokenToAllTokensEnumeration(tokenId);\n } else if (previousOwner != to) {\n _removeTokenFromOwnerEnumeration(previousOwner, tokenId);\n }\n if (to == address(0)) {\n _removeTokenFromAllTokensEnumeration(tokenId);\n } else if (previousOwner != to) {\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n return previousOwner;\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n uint256 length = balanceOf(to) - 1;\n _ownedTokens[to][length] = tokenId;\n _ownedTokensIndex[tokenId] = length;\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = balanceOf(from);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n delete _ownedTokensIndex[tokenId];\n delete _ownedTokens[from][lastTokenIndex];\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length - 1;\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n delete _allTokensIndex[tokenId];\n _allTokens.pop();\n }\n\n /**\n * See {ERC721-_increaseBalance}. We need that to account tokens that were minted in batch\n */\n function _increaseBalance(address account, uint128 amount) internal virtual override {\n if (amount > 0) {\n revert ERC721EnumerableForbiddenBatchMint();\n }\n super._increaseBalance(account, amount);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Receiver} from \"./IERC721Receiver.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n mapping(uint256 tokenId => address) private _owners;\n\n mapping(address owner => uint256) private _balances;\n\n mapping(uint256 tokenId => address) private _tokenApprovals;\n\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual returns (uint256) {\n if (owner == address(0)) {\n revert ERC721InvalidOwner(address(0));\n }\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\n return _requireOwned(tokenId);\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n _requireOwned(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual {\n _approve(to, tokenId, _msgSender());\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual returns (address) {\n _requireOwned(tokenId);\n\n return _getApproved(tokenId);\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n address previousOwner = _update(to, tokenId, _msgSender());\n if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n transferFrom(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n *\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n */\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n * particular (ignoring whether it is owned by `owner`).\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n return\n spender != address(0) &&\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n * the `spender` for the specific `tokenId`.\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n if (!_isAuthorized(owner, spender, tokenId)) {\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else {\n revert ERC721InsufficientApproval(spender, tokenId);\n }\n }\n }\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n *\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n * remain consistent with one another.\n */\n function _increaseBalance(address account, uint128 value) internal virtual {\n unchecked {\n _balances[account] += value;\n }\n }\n\n /**\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n *\n * Emits a {Transfer} event.\n *\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n address from = _ownerOf(tokenId);\n\n // Perform (optional) operator check\n if (auth != address(0)) {\n _checkAuthorized(from, auth, tokenId);\n }\n\n // Execute the update\n if (from != address(0)) {\n // Clear approval. No need to re-authorize or emit the Approval event\n _approve(address(0), tokenId, address(0), false);\n\n unchecked {\n _balances[from] -= 1;\n }\n }\n\n if (to != address(0)) {\n unchecked {\n _balances[to] += 1;\n }\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n return from;\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner != address(0)) {\n revert ERC721InvalidSender(address(0));\n }\n }\n\n /**\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n _mint(to, tokenId);\n _checkOnERC721Received(address(0), to, tokenId, data);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal {\n address previousOwner = _update(address(0), tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is like {safeTransferFrom} in the sense that it invokes\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `tokenId` token must exist and be owned by `from`.\n * - `to` cannot be the zero address.\n * - `from` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\n _safeTransfer(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n _transfer(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n * either the owner of the token, or approved to operate on all tokens held by this owner.\n *\n * Emits an {Approval} event.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address to, uint256 tokenId, address auth) internal {\n _approve(to, tokenId, auth, true);\n }\n\n /**\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n * emitted in the context of transfers.\n */\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n // Avoid reading the owner unless necessary\n if (emitEvent || auth != address(0)) {\n address owner = _requireOwned(tokenId);\n\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n revert ERC721InvalidApprover(auth);\n }\n\n if (emitEvent) {\n emit Approval(owner, to, tokenId);\n }\n }\n\n _tokenApprovals[tokenId] = to;\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Requirements:\n * - operator can't be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC721InvalidOperator(operator);\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n * Returns the owner.\n *\n * Overrides to ownership logic should be done to {_ownerOf}.\n */\n function _requireOwned(uint256 tokenId) internal view returns (address) {\n address owner = _ownerOf(tokenId);\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n return owner;\n }\n\n /**\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\n if (to.code.length > 0) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n if (retval != IERC721Receiver.onERC721Received.selector) {\n revert ERC721InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert ERC721InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n" + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC4906.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\nimport {IERC721} from \"./IERC721.sol\";\n\n/// @title EIP-721 Metadata Update Extension\ninterface IERC4906 is IERC165, IERC721 {\n /// @dev This event emits when the metadata of a token is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFT.\n event MetadataUpdate(uint256 _tokenId);\n\n /// @dev This event emits when the metadata of a range of tokens is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFTs.\n event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Enumerable.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n * reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../token/ERC721/IERC721.sol\";\n" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + }, + "remappings": [], + "evmVersion": "paris" + } + }, + "output": { + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.", + "errors": { + "OwnableInvalidOwner(address)": [ + { + "details": "The owner is not a valid owner account. (eg. `address(0)`)" + } + ], + "OwnableUnauthorizedAccount(address)": [ + { + "details": "The caller account is not authorized to perform an operation." + } + ] + }, + "kind": "dev", + "methods": { + "constructor": { + "details": "Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 8, + "contract": "@openzeppelin/contracts/access/Ownable.sol:Ownable", + "label": "_owner", + "offset": 0, + "slot": "0", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "IERC4906": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "BatchMetadataUpdate(uint256,uint256)": { + "details": "This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs." + }, + "MetadataUpdate(uint256)": { + "details": "This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the number of tokens in ``owner``'s account." + }, + "getApproved(uint256)": { + "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." + }, + "isApprovedForAll(address,address)": { + "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}" + }, + "ownerOf(uint256)": { + "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "setApprovalForAll(address,bool)": { + "details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." + } + }, + "title": "EIP-721 Metadata Update Extension", + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"EIP-721 Metadata Update Extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC4906.sol\":\"IERC4906\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "devdoc": { + "details": "Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.", + "errors": { + "ERC1155InsufficientBalance(address,uint256,uint256,uint256)": [ + { + "details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.", + "params": { + "balance": "Current balance for the interacting account.", + "needed": "Minimum amount required to perform a transfer.", + "sender": "Address whose tokens are being transferred.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC1155InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC1155InvalidArrayLength(uint256,uint256)": [ + { + "details": "Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.", + "params": { + "idsLength": "Length of the array of token identifiers", + "valuesLength": "Length of the array of token amounts" + } + } + ], + "ERC1155InvalidOperator(address)": [ + { + "details": "Indicates a failure with the `operator` to be approved. Used in approvals.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC1155InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC1155InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC1155MissingApprovalForAll(address,address)": [ + { + "details": "Indicates a failure with the `operator`’s approval. Used in transfers.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner.", + "owner": "Address of the current owner of a token." + } + } + ] + }, + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "devdoc": { + "details": "Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.", + "errors": { + "ERC20InsufficientAllowance(address,uint256,uint256)": [ + { + "details": "Indicates a failure with the `spender`’s `allowance`. Used in transfers.", + "params": { + "allowance": "Amount of tokens a `spender` is allowed to operate with.", + "needed": "Minimum amount required to perform a transfer.", + "spender": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC20InsufficientBalance(address,uint256,uint256)": [ + { + "details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.", + "params": { + "balance": "Current balance for the interacting account.", + "needed": "Minimum amount required to perform a transfer.", + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC20InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC20InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC20InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC20InvalidSpender(address)": [ + { + "details": "Indicates a failure with the `spender` to be approved. Used in approvals.", + "params": { + "spender": "Address that may be allowed to operate on tokens without being their owner." + } + } + ] + }, + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "devdoc": { + "details": "Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.", + "errors": { + "ERC721IncorrectOwner(address,uint256,address)": [ + { + "details": "Indicates an error related to the ownership over a particular token. Used in transfers.", + "params": { + "owner": "Address of the current owner of a token.", + "sender": "Address whose tokens are being transferred.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InsufficientApproval(address,uint256)": [ + { + "details": "Indicates a failure with the `operator`’s approval. Used in transfers.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC721InvalidOperator(address)": [ + { + "details": "Indicates a failure with the `operator` to be approved. Used in approvals.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC721InvalidOwner(address)": [ + { + "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.", + "params": { + "owner": "Address of the current owner of a token." + } + } + ], + "ERC721InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC721InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC721NonexistentToken(uint256)": [ + { + "details": "Indicates a `tokenId` whose `owner` is the zero address.", + "params": { + "tokenId": "Identifier number of a token." + } + } + ] + }, + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ERC721": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.", + "errors": { + "ERC721IncorrectOwner(address,uint256,address)": [ + { + "details": "Indicates an error related to the ownership over a particular token. Used in transfers.", + "params": { + "owner": "Address of the current owner of a token.", + "sender": "Address whose tokens are being transferred.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InsufficientApproval(address,uint256)": [ + { + "details": "Indicates a failure with the `operator`’s approval. Used in transfers.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC721InvalidOperator(address)": [ + { + "details": "Indicates a failure with the `operator` to be approved. Used in approvals.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC721InvalidOwner(address)": [ + { + "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.", + "params": { + "owner": "Address of the current owner of a token." + } + } + ], + "ERC721InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC721InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC721NonexistentToken(uint256)": [ + { + "details": "Indicates a `tokenId` whose `owner` is the zero address.", + "params": { + "tokenId": "Identifier number of a token." + } + } + ] + }, + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "constructor": { + "details": "Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenURI(uint256)": { + "details": "See {IERC721Metadata-tokenURI}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 349, + "contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721", + "label": "_name", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + }, + { + "astId": 351, + "contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721", + "label": "_symbol", + "offset": 0, + "slot": "1", + "type": "t_string_storage" + }, + { + "astId": 355, + "contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721", + "label": "_owners", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 359, + "contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721", + "label": "_balances", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_uint256)" + }, + { + "astId": 363, + "contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721", + "label": "_tokenApprovals", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 369, + "contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721", + "label": "_operatorApprovals", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32", + "value": "t_mapping(t_address,t_bool)" + }, + "t_mapping(t_address,t_uint256)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_mapping(t_uint256,t_address)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => address)", + "numberOfBytes": "32", + "value": "t_address" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "IERC721": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Required interface of an ERC721 compliant contract.", + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the number of tokens in ``owner``'s account." + }, + "getApproved(uint256)": { + "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." + }, + "isApprovedForAll(address,address)": { + "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}" + }, + "ownerOf(uint256)": { + "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "setApprovalForAll(address,bool)": { + "details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "IERC721Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.", + "kind": "dev", + "methods": { + "onERC721Received(address,address,uint256,bytes)": { + "details": "Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`." + } + }, + "title": "ERC721 token receiver interface", + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "onERC721Received(address,address,uint256,bytes)": "150b7a02" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol": { + "ERC721Enumerable": { + "abi": [ + { + "inputs": [], + "name": "ERC721EnumerableForbiddenBatchMint", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "ERC721OutOfBoundsIndex", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "This implements an optional extension of {ERC721} defined in the EIP that adds enumerability of all the token ids in the contract as well as all token ids owned by each account. CAUTION: `ERC721` extensions that implement custom `balanceOf` logic, such as `ERC721Consecutive`, interfere with enumerability and should not be used together with `ERC721Enumerable`.", + "errors": { + "ERC721EnumerableForbiddenBatchMint()": [ + { + "details": "Batch mint is not allowed." + } + ], + "ERC721IncorrectOwner(address,uint256,address)": [ + { + "details": "Indicates an error related to the ownership over a particular token. Used in transfers.", + "params": { + "owner": "Address of the current owner of a token.", + "sender": "Address whose tokens are being transferred.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InsufficientApproval(address,uint256)": [ + { + "details": "Indicates a failure with the `operator`’s approval. Used in transfers.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC721InvalidOperator(address)": [ + { + "details": "Indicates a failure with the `operator` to be approved. Used in approvals.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC721InvalidOwner(address)": [ + { + "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.", + "params": { + "owner": "Address of the current owner of a token." + } + } + ], + "ERC721InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC721InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC721NonexistentToken(uint256)": [ + { + "details": "Indicates a `tokenId` whose `owner` is the zero address.", + "params": { + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721OutOfBoundsIndex(address,uint256)": [ + { + "details": "An `owner`'s token query was out of bounds for `index`. NOTE: The owner being `address(0)` indicates a global out of bounds index." + } + ] + }, + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenByIndex(uint256)": { + "details": "See {IERC721Enumerable-tokenByIndex}." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "tokenURI(uint256)": { + "details": "See {IERC721Metadata-tokenURI}." + }, + "totalSupply()": { + "details": "See {IERC721Enumerable-totalSupply}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenByIndex(uint256)": "4f6ccce7", + "tokenOfOwnerByIndex(address,uint256)": "2f745c59", + "tokenURI(uint256)": "c87b56dd", + "totalSupply()": "18160ddd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ERC721EnumerableForbiddenBatchMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ERC721OutOfBoundsIndex\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This implements an optional extension of {ERC721} defined in the EIP that adds enumerability of all the token ids in the contract as well as all token ids owned by each account. CAUTION: `ERC721` extensions that implement custom `balanceOf` logic, such as `ERC721Consecutive`, interfere with enumerability and should not be used together with `ERC721Enumerable`.\",\"errors\":{\"ERC721EnumerableForbiddenBatchMint()\":[{\"details\":\"Batch mint is not allowed.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721OutOfBoundsIndex(address,uint256)\":[{\"details\":\"An `owner`'s token query was out of bounds for `index`. NOTE: The owner being `address(0)` indicates a global out of bounds index.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":\"ERC721Enumerable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0x36797469c391ea5ba27408e6ca8adf0824ba6f3adea9c139be18bd6f63232c16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dcf8bb9f7c29d678de34a051b4a71cf27ae56464678696c6913cbbfc75d548a\",\"dweb:/ipfs/QmSfdgU9V2dXh9oajUxgF9hU1aPnpd1PEMtcchoANsCNmW\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 349, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_name", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + }, + { + "astId": 351, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_symbol", + "offset": 0, + "slot": "1", + "type": "t_string_storage" + }, + { + "astId": 355, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_owners", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 359, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_balances", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_uint256)" + }, + { + "astId": 363, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_tokenApprovals", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 369, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_operatorApprovals", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" + }, + { + "astId": 1479, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_ownedTokens", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_address,t_mapping(t_uint256,t_uint256))" + }, + { + "astId": 1483, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_ownedTokensIndex", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_uint256,t_uint256)" + }, + { + "astId": 1486, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_allTokens", + "offset": 0, + "slot": "8", + "type": "t_array(t_uint256)dyn_storage" + }, + { + "astId": 1490, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable", + "label": "_allTokensIndex", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_uint256)" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)dyn_storage": { + "base": "t_uint256", + "encoding": "dynamic_array", + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32", + "value": "t_mapping(t_address,t_bool)" + }, + "t_mapping(t_address,t_mapping(t_uint256,t_uint256))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(uint256 => uint256))", + "numberOfBytes": "32", + "value": "t_mapping(t_uint256,t_uint256)" + }, + "t_mapping(t_address,t_uint256)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_mapping(t_uint256,t_address)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => address)", + "numberOfBytes": "32", + "value": "t_address" + }, + "t_mapping(t_uint256,t_uint256)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "ERC721URIStorage": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "ERC721 token with storage based token URI management.", + "errors": { + "ERC721IncorrectOwner(address,uint256,address)": [ + { + "details": "Indicates an error related to the ownership over a particular token. Used in transfers.", + "params": { + "owner": "Address of the current owner of a token.", + "sender": "Address whose tokens are being transferred.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InsufficientApproval(address,uint256)": [ + { + "details": "Indicates a failure with the `operator`’s approval. Used in transfers.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC721InvalidOperator(address)": [ + { + "details": "Indicates a failure with the `operator` to be approved. Used in approvals.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC721InvalidOwner(address)": [ + { + "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.", + "params": { + "owner": "Address of the current owner of a token." + } + } + ], + "ERC721InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC721InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC721NonexistentToken(uint256)": [ + { + "details": "Indicates a `tokenId` whose `owner` is the zero address.", + "params": { + "tokenId": "Identifier number of a token." + } + } + ] + }, + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "BatchMetadataUpdate(uint256,uint256)": { + "details": "This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs." + }, + "MetadataUpdate(uint256)": { + "details": "This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}" + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenURI(uint256)": { + "details": "See {IERC721Metadata-tokenURI}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 token with storage based token URI management.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 349, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage", + "label": "_name", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + }, + { + "astId": 351, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage", + "label": "_symbol", + "offset": 0, + "slot": "1", + "type": "t_string_storage" + }, + { + "astId": 355, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage", + "label": "_owners", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 359, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage", + "label": "_balances", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_uint256)" + }, + { + "astId": 363, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage", + "label": "_tokenApprovals", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 369, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage", + "label": "_operatorApprovals", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" + }, + { + "astId": 1872, + "contract": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage", + "label": "_tokenURIs", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_uint256,t_string_storage)" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32", + "value": "t_mapping(t_address,t_bool)" + }, + "t_mapping(t_address,t_uint256)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_mapping(t_uint256,t_address)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => address)", + "numberOfBytes": "32", + "value": "t_address" + }, + "t_mapping(t_uint256,t_string_storage)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => string)", + "numberOfBytes": "32", + "value": "t_string_storage" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol": { + "IERC721Enumerable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "See https://eips.ethereum.org/EIPS/eip-721", + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the number of tokens in ``owner``'s account." + }, + "getApproved(uint256)": { + "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." + }, + "isApprovedForAll(address,address)": { + "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}" + }, + "ownerOf(uint256)": { + "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "setApprovalForAll(address,bool)": { + "details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + }, + "tokenByIndex(uint256)": { + "details": "Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "totalSupply()": { + "details": "Returns the total amount of tokens stored by the contract." + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." + } + }, + "title": "ERC-721 Non-Fungible Token Standard, optional enumeration extension", + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "tokenByIndex(uint256)": "4f6ccce7", + "tokenOfOwnerByIndex(address,uint256)": "2f745c59", + "totalSupply()": "18160ddd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "IERC721Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "See https://eips.ethereum.org/EIPS/eip-721", + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the number of tokens in ``owner``'s account." + }, + "getApproved(uint256)": { + "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." + }, + "isApprovedForAll(address,address)": { + "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}" + }, + "name()": { + "details": "Returns the token collection name." + }, + "ownerOf(uint256)": { + "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "setApprovalForAll(address,bool)": { + "details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + }, + "symbol()": { + "details": "Returns the token collection symbol." + }, + "tokenURI(uint256)": { + "details": "Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." + } + }, + "title": "ERC-721 Non-Fungible Token Standard, optional metadata extension", + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "devdoc": { + "details": "Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "devdoc": { + "details": "String operations.", + "errors": { + "StringsInsufficientHexLength(uint256,uint256)": [ + { + "details": "The `value` string doesn't fit in the specified `length`." + } + ] + }, + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"@openzeppelin/contracts/utils/Strings.sol\":251:3098 library Strings {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@openzeppelin/contracts/utils/Strings.sol\":251:3098 library Strings {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", + "sourceMap": "251:2847:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", + "sourceMap": "251:2847:13:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "equal(string memory,string memory)": "infinite", + "toHexString(address)": "infinite", + "toHexString(uint256)": "infinite", + "toHexString(uint256,uint256)": "infinite", + "toString(uint256)": "infinite", + "toStringSigned(int256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 251, + "end": 3098, + "name": "PUSH #[$]", + "source": 13, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH [$]", + "source": 13, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "B" + }, + { + "begin": 251, + "end": 3098, + "name": "DUP3", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "DUP3", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "DUP3", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "CODECOPY", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "DUP1", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 251, + "end": 3098, + "name": "BYTE", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "73" + }, + { + "begin": 251, + "end": 3098, + "name": "EQ", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 251, + "end": 3098, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 251, + "end": 3098, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 251, + "end": 3098, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "24" + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 251, + "end": 3098, + "name": "REVERT", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "tag", + "source": 13, + "value": "1" + }, + { + "begin": 251, + "end": 3098, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "ADDRESS", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 251, + "end": 3098, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "73" + }, + { + "begin": 251, + "end": 3098, + "name": "DUP2", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "MSTORE8", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "DUP3", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "DUP2", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "RETURN", + "source": 13 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + ".code": [ + { + "begin": 251, + "end": 3098, + "name": "PUSHDEPLOYADDRESS", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "ADDRESS", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "EQ", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "80" + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 251, + "end": 3098, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 251, + "end": 3098, + "name": "DUP1", + "source": 13 + }, + { + "begin": 251, + "end": 3098, + "name": "REVERT", + "source": 13 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts/access/Ownable.sol", + "@openzeppelin/contracts/interfaces/IERC165.sol", + "@openzeppelin/contracts/interfaces/IERC4906.sol", + "@openzeppelin/contracts/interfaces/IERC721.sol", + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "@openzeppelin/contracts/utils/Context.sol", + "@openzeppelin/contracts/utils/Strings.sol", + "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "@openzeppelin/contracts/utils/math/Math.sol", + "@openzeppelin/contracts/utils/math/SignedMath.sol", + "contracts/NFT.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "details": "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); } ```", + "kind": "dev", + "methods": { + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"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); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "details": "Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.", + "kind": "dev", + "methods": { + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "devdoc": { + "details": "Standard math utilities missing in the Solidity language.", + "errors": { + "MathOverflowedMulDiv()": [ + { + "details": "Muldiv operation overflow." + } + ] + }, + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"@openzeppelin/contracts/utils/math/Math.sol\":203:15117 library Math {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":203:15117 library Math {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:16:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "average(uint256,uint256)": "infinite", + "ceilDiv(uint256,uint256)": "infinite", + "log10(uint256)": "infinite", + "log10(uint256,enum Math.Rounding)": "infinite", + "log2(uint256)": "infinite", + "log2(uint256,enum Math.Rounding)": "infinite", + "log256(uint256)": "infinite", + "log256(uint256,enum Math.Rounding)": "infinite", + "max(uint256,uint256)": "infinite", + "min(uint256,uint256)": "infinite", + "mulDiv(uint256,uint256,uint256)": "infinite", + "mulDiv(uint256,uint256,uint256,enum Math.Rounding)": "infinite", + "sqrt(uint256)": "infinite", + "sqrt(uint256,enum Math.Rounding)": "infinite", + "tryAdd(uint256,uint256)": "infinite", + "tryDiv(uint256,uint256)": "infinite", + "tryMod(uint256,uint256)": "infinite", + "tryMul(uint256,uint256)": "infinite", + "trySub(uint256,uint256)": "infinite", + "unsignedRoundsUp(enum Math.Rounding)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 203, + "end": 15117, + "name": "PUSH #[$]", + "source": 16, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH [$]", + "source": 16, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "B" + }, + { + "begin": 203, + "end": 15117, + "name": "DUP3", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "DUP3", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "DUP3", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "CODECOPY", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "DUP1", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 203, + "end": 15117, + "name": "BYTE", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "73" + }, + { + "begin": 203, + "end": 15117, + "name": "EQ", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH [tag]", + "source": 16, + "value": "1" + }, + { + "begin": 203, + "end": 15117, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 203, + "end": 15117, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 203, + "end": 15117, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 203, + "end": 15117, + "name": "REVERT", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "tag", + "source": 16, + "value": "1" + }, + { + "begin": 203, + "end": 15117, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "ADDRESS", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 203, + "end": 15117, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "73" + }, + { + "begin": 203, + "end": 15117, + "name": "DUP2", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "MSTORE8", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "DUP3", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "DUP2", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "RETURN", + "source": 16 + } + ], + ".data": { + "0": { + ".auxdata": "a264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + ".code": [ + { + "begin": 203, + "end": 15117, + "name": "PUSHDEPLOYADDRESS", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "ADDRESS", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "EQ", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "80" + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 203, + "end": 15117, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 203, + "end": 15117, + "name": "DUP1", + "source": 16 + }, + { + "begin": 203, + "end": 15117, + "name": "REVERT", + "source": 16 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts/access/Ownable.sol", + "@openzeppelin/contracts/interfaces/IERC165.sol", + "@openzeppelin/contracts/interfaces/IERC4906.sol", + "@openzeppelin/contracts/interfaces/IERC721.sol", + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "@openzeppelin/contracts/utils/Context.sol", + "@openzeppelin/contracts/utils/Strings.sol", + "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "@openzeppelin/contracts/utils/math/Math.sol", + "@openzeppelin/contracts/utils/math/SignedMath.sol", + "contracts/NFT.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "devdoc": { + "details": "Standard signed math utilities missing in the Solidity language.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"@openzeppelin/contracts/utils/math/SignedMath.sol\":216:1263 library SignedMath {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@openzeppelin/contracts/utils/math/SignedMath.sol\":216:1263 library SignedMath {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:17:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "abs(int256)": "infinite", + "average(int256,int256)": "infinite", + "max(int256,int256)": "infinite", + "min(int256,int256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 216, + "end": 1263, + "name": "PUSH #[$]", + "source": 17, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH [$]", + "source": 17, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "B" + }, + { + "begin": 216, + "end": 1263, + "name": "DUP3", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "DUP3", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "DUP3", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "CODECOPY", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "DUP1", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "MLOAD", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "0" + }, + { + "begin": 216, + "end": 1263, + "name": "BYTE", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "73" + }, + { + "begin": 216, + "end": 1263, + "name": "EQ", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH [tag]", + "source": 17, + "value": "1" + }, + { + "begin": 216, + "end": 1263, + "name": "JUMPI", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "0" + }, + { + "begin": 216, + "end": 1263, + "name": "MSTORE", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "0" + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "4" + }, + { + "begin": 216, + "end": 1263, + "name": "MSTORE", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "24" + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "0" + }, + { + "begin": 216, + "end": 1263, + "name": "REVERT", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "tag", + "source": 17, + "value": "1" + }, + { + "begin": 216, + "end": 1263, + "name": "JUMPDEST", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "ADDRESS", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "0" + }, + { + "begin": 216, + "end": 1263, + "name": "MSTORE", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "73" + }, + { + "begin": 216, + "end": 1263, + "name": "DUP2", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "MSTORE8", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "DUP3", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "DUP2", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "RETURN", + "source": 17 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + ".code": [ + { + "begin": 216, + "end": 1263, + "name": "PUSHDEPLOYADDRESS", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "ADDRESS", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "EQ", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "80" + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "40" + }, + { + "begin": 216, + "end": 1263, + "name": "MSTORE", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "PUSH", + "source": 17, + "value": "0" + }, + { + "begin": 216, + "end": 1263, + "name": "DUP1", + "source": 17 + }, + { + "begin": 216, + "end": 1263, + "name": "REVERT", + "source": 17 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts/access/Ownable.sol", + "@openzeppelin/contracts/interfaces/IERC165.sol", + "@openzeppelin/contracts/interfaces/IERC4906.sol", + "@openzeppelin/contracts/interfaces/IERC721.sol", + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "@openzeppelin/contracts/utils/Context.sol", + "@openzeppelin/contracts/utils/Strings.sol", + "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "@openzeppelin/contracts/utils/math/Math.sol", + "@openzeppelin/contracts/utils/math/SignedMath.sol", + "contracts/NFT.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "contracts/NFT.sol": { + "CoreNFT": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "baseURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ERC721EnumerableForbiddenBatchMint", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "ERC721OutOfBoundsIndex", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCurrentTokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "safeMint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "baseURI_", + "type": "string" + } + ], + "name": "setBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "errors": { + "ERC721EnumerableForbiddenBatchMint()": [ + { + "details": "Batch mint is not allowed." + } + ], + "ERC721IncorrectOwner(address,uint256,address)": [ + { + "details": "Indicates an error related to the ownership over a particular token. Used in transfers.", + "params": { + "owner": "Address of the current owner of a token.", + "sender": "Address whose tokens are being transferred.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InsufficientApproval(address,uint256)": [ + { + "details": "Indicates a failure with the `operator`’s approval. Used in transfers.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner.", + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721InvalidApprover(address)": [ + { + "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.", + "params": { + "approver": "Address initiating an approval operation." + } + } + ], + "ERC721InvalidOperator(address)": [ + { + "details": "Indicates a failure with the `operator` to be approved. Used in approvals.", + "params": { + "operator": "Address that may be allowed to operate on tokens without being their owner." + } + } + ], + "ERC721InvalidOwner(address)": [ + { + "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.", + "params": { + "owner": "Address of the current owner of a token." + } + } + ], + "ERC721InvalidReceiver(address)": [ + { + "details": "Indicates a failure with the token `receiver`. Used in transfers.", + "params": { + "receiver": "Address to which tokens are being transferred." + } + } + ], + "ERC721InvalidSender(address)": [ + { + "details": "Indicates a failure with the token `sender`. Used in transfers.", + "params": { + "sender": "Address whose tokens are being transferred." + } + } + ], + "ERC721NonexistentToken(uint256)": [ + { + "details": "Indicates a `tokenId` whose `owner` is the zero address.", + "params": { + "tokenId": "Identifier number of a token." + } + } + ], + "ERC721OutOfBoundsIndex(address,uint256)": [ + { + "details": "An `owner`'s token query was out of bounds for `index`. NOTE: The owner being `address(0)` indicates a global out of bounds index." + } + ], + "OwnableInvalidOwner(address)": [ + { + "details": "The owner is not a valid owner account. (eg. `address(0)`)" + } + ], + "OwnableUnauthorizedAccount(address)": [ + { + "details": "The caller account is not authorized to perform an operation." + } + ] + }, + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "BatchMetadataUpdate(uint256,uint256)": { + "details": "This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs." + }, + "MetadataUpdate(uint256)": { + "details": "This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenByIndex(uint256)": { + "details": "See {IERC721Enumerable-tokenByIndex}." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "totalSupply()": { + "details": "See {IERC721Enumerable-totalSupply}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "evm": { + "assembly": " /* \"contracts/NFT.sol\":428:2417 contract CoreNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {... */\n mstore(0x40, 0x80)\n /* \"contracts/NFT.sol\":608:774 constructor(... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"contracts/NFT.sol\":692:702 msg.sender */\n caller\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1381:1494 constructor(string memory name_, string memory symbol_) {... */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x07\n dup2\n mstore\n 0x20\n add\n 0x436f72654e465400000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x04\n dup2\n mstore\n 0x20\n add\n 0x434f524500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1455:1460 name_ */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1447:1452 _name */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1447:1460 _name = name_ */\n swap1\n dup2\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\ntag_8:\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1480:1487 symbol_ */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1470:1477 _symbol */\n 0x01\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1470:1487 _symbol = symbol_ */\n swap1\n dup2\n tag_10\n swap2\n swap1\n tag_9\n jump\t// in\ntag_10:\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1381:1494 constructor(string memory name_, string memory symbol_) {... */\n pop\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1297:1298 0 */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1273:1299 initialOwner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1273:1285 initialOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1273:1299 initialOwner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1269:1364 if (initialOwner == address(0)) {... */\n tag_12\n jumpi\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1350:1351 0 */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1322:1353 OwnableInvalidOwner(address(0)) */\n mload(0x40)\n 0x1e4fbdf700000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\ntag_13:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1269:1364 if (initialOwner == address(0)) {... */\ntag_12:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1373:1405 _transferOwnership(initialOwner) */\n tag_15\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1392:1404 initialOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1373:1391 _transferOwnership */\n shl(0x20, tag_16)\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1373:1405 _transferOwnership(initialOwner) */\n 0x20\n shr\n jump\t// in\ntag_15:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1225:1412 constructor(address initialOwner) {... */\n pop\n /* \"contracts/NFT.sol\":733:741 baseURI_ */\n dup1\n /* \"contracts/NFT.sol\":714:730 _baseURIExtended */\n 0x0d\n /* \"contracts/NFT.sol\":714:741 _baseURIExtended = baseURI_ */\n swap1\n dup2\n tag_18\n swap2\n swap1\n tag_9\n jump\t// in\ntag_18:\n pop\n /* \"contracts/NFT.sol\":766:767 0 */\n 0x00\n /* \"contracts/NFT.sol\":751:763 _nextTokenId */\n 0x0c\n /* \"contracts/NFT.sol\":751:767 _nextTokenId = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/NFT.sol\":608:774 constructor(... */\n pop\n /* \"contracts/NFT.sol\":428:2417 contract CoreNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {... */\n jump(tag_19)\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2912:3099 function _transferOwnership(address newOwner) internal virtual {... */\ntag_16:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2985:3001 address oldOwner */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3004:3010 _owner */\n 0x0b\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2985:3010 address oldOwner = _owner */\n swap1\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3029:3037 newOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3020:3026 _owner */\n 0x0b\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3020:3037 _owner = newOwner */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3083:3091 newOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092 OwnershipTransferred(oldOwner, newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3073:3081 oldOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092 OwnershipTransferred(oldOwner, newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2975:3099 {... */\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2912:3099 function _transferOwnership(address newOwner) internal virtual {... */\n pop\n jump\t// out\n /* \"#utility.yul\":7:82 */\ntag_21:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\ntag_22:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\ntag_23:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:451 */\ntag_24:\n /* \"#utility.yul\":443:444 */\n 0x00\n /* \"#utility.yul\":440:441 */\n dup1\n /* \"#utility.yul\":433:445 */\n revert\n /* \"#utility.yul\":457:574 */\ntag_25:\n /* \"#utility.yul\":566:567 */\n 0x00\n /* \"#utility.yul\":563:564 */\n dup1\n /* \"#utility.yul\":556:568 */\n revert\n /* \"#utility.yul\":580:682 */\ntag_26:\n /* \"#utility.yul\":621:627 */\n 0x00\n /* \"#utility.yul\":672:674 */\n 0x1f\n /* \"#utility.yul\":668:675 */\n not\n /* \"#utility.yul\":663:665 */\n 0x1f\n /* \"#utility.yul\":656:661 */\n dup4\n /* \"#utility.yul\":652:666 */\n add\n /* \"#utility.yul\":648:676 */\n and\n /* \"#utility.yul\":638:676 */\n swap1\n pop\n /* \"#utility.yul\":580:682 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":688:868 */\ntag_27:\n /* \"#utility.yul\":736:813 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":733:734 */\n 0x00\n /* \"#utility.yul\":726:814 */\n mstore\n /* \"#utility.yul\":833:837 */\n 0x41\n /* \"#utility.yul\":830:831 */\n 0x04\n /* \"#utility.yul\":823:838 */\n mstore\n /* \"#utility.yul\":857:861 */\n 0x24\n /* \"#utility.yul\":854:855 */\n 0x00\n /* \"#utility.yul\":847:862 */\n revert\n /* \"#utility.yul\":874:1155 */\ntag_28:\n /* \"#utility.yul\":957:984 */\n tag_65\n /* \"#utility.yul\":979:983 */\n dup3\n /* \"#utility.yul\":957:984 */\n tag_26\n jump\t// in\ntag_65:\n /* \"#utility.yul\":949:955 */\n dup2\n /* \"#utility.yul\":945:985 */\n add\n /* \"#utility.yul\":1087:1093 */\n dup2\n /* \"#utility.yul\":1075:1085 */\n dup2\n /* \"#utility.yul\":1072:1094 */\n lt\n /* \"#utility.yul\":1051:1069 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1039:1049 */\n dup3\n /* \"#utility.yul\":1036:1070 */\n gt\n /* \"#utility.yul\":1033:1095 */\n or\n /* \"#utility.yul\":1030:1118 */\n iszero\n tag_66\n jumpi\n /* \"#utility.yul\":1098:1116 */\n tag_67\n tag_27\n jump\t// in\ntag_67:\n /* \"#utility.yul\":1030:1118 */\ntag_66:\n /* \"#utility.yul\":1138:1148 */\n dup1\n /* \"#utility.yul\":1134:1136 */\n 0x40\n /* \"#utility.yul\":1127:1149 */\n mstore\n /* \"#utility.yul\":917:1155 */\n pop\n /* \"#utility.yul\":874:1155 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1161:1290 */\ntag_29:\n /* \"#utility.yul\":1195:1201 */\n 0x00\n /* \"#utility.yul\":1222:1242 */\n tag_69\n tag_21\n jump\t// in\ntag_69:\n /* \"#utility.yul\":1212:1242 */\n swap1\n pop\n /* \"#utility.yul\":1251:1284 */\n tag_70\n /* \"#utility.yul\":1279:1283 */\n dup3\n /* \"#utility.yul\":1271:1277 */\n dup3\n /* \"#utility.yul\":1251:1284 */\n tag_28\n jump\t// in\ntag_70:\n /* \"#utility.yul\":1161:1290 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1296:1604 */\ntag_30:\n /* \"#utility.yul\":1358:1362 */\n 0x00\n /* \"#utility.yul\":1448:1466 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1440:1446 */\n dup3\n /* \"#utility.yul\":1437:1467 */\n gt\n /* \"#utility.yul\":1434:1490 */\n iszero\n tag_72\n jumpi\n /* \"#utility.yul\":1470:1488 */\n tag_73\n tag_27\n jump\t// in\ntag_73:\n /* \"#utility.yul\":1434:1490 */\ntag_72:\n /* \"#utility.yul\":1508:1537 */\n tag_74\n /* \"#utility.yul\":1530:1536 */\n dup3\n /* \"#utility.yul\":1508:1537 */\n tag_26\n jump\t// in\ntag_74:\n /* \"#utility.yul\":1500:1537 */\n swap1\n pop\n /* \"#utility.yul\":1592:1596 */\n 0x20\n /* \"#utility.yul\":1586:1590 */\n dup2\n /* \"#utility.yul\":1582:1597 */\n add\n /* \"#utility.yul\":1574:1597 */\n swap1\n pop\n /* \"#utility.yul\":1296:1604 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1610:1858 */\ntag_31:\n /* \"#utility.yul\":1692:1693 */\n 0x00\n /* \"#utility.yul\":1702:1815 */\ntag_76:\n /* \"#utility.yul\":1716:1722 */\n dup4\n /* \"#utility.yul\":1713:1714 */\n dup2\n /* \"#utility.yul\":1710:1723 */\n lt\n /* \"#utility.yul\":1702:1815 */\n iszero\n tag_78\n jumpi\n /* \"#utility.yul\":1801:1802 */\n dup1\n /* \"#utility.yul\":1796:1799 */\n dup3\n /* \"#utility.yul\":1792:1803 */\n add\n /* \"#utility.yul\":1786:1804 */\n mload\n /* \"#utility.yul\":1782:1783 */\n dup2\n /* \"#utility.yul\":1777:1780 */\n dup5\n /* \"#utility.yul\":1773:1784 */\n add\n /* \"#utility.yul\":1766:1805 */\n mstore\n /* \"#utility.yul\":1738:1740 */\n 0x20\n /* \"#utility.yul\":1735:1736 */\n dup2\n /* \"#utility.yul\":1731:1741 */\n add\n /* \"#utility.yul\":1726:1741 */\n swap1\n pop\n /* \"#utility.yul\":1702:1815 */\n jump(tag_76)\ntag_78:\n /* \"#utility.yul\":1849:1850 */\n 0x00\n /* \"#utility.yul\":1840:1846 */\n dup5\n /* \"#utility.yul\":1835:1838 */\n dup5\n /* \"#utility.yul\":1831:1847 */\n add\n /* \"#utility.yul\":1824:1851 */\n mstore\n /* \"#utility.yul\":1672:1858 */\n pop\n /* \"#utility.yul\":1610:1858 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1864:2298 */\ntag_32:\n /* \"#utility.yul\":1953:1958 */\n 0x00\n /* \"#utility.yul\":1978:2044 */\n tag_80\n /* \"#utility.yul\":1994:2043 */\n tag_81\n /* \"#utility.yul\":2036:2042 */\n dup5\n /* \"#utility.yul\":1994:2043 */\n tag_30\n jump\t// in\ntag_81:\n /* \"#utility.yul\":1978:2044 */\n tag_29\n jump\t// in\ntag_80:\n /* \"#utility.yul\":1969:2044 */\n swap1\n pop\n /* \"#utility.yul\":2067:2073 */\n dup3\n /* \"#utility.yul\":2060:2065 */\n dup2\n /* \"#utility.yul\":2053:2074 */\n mstore\n /* \"#utility.yul\":2105:2109 */\n 0x20\n /* \"#utility.yul\":2098:2103 */\n dup2\n /* \"#utility.yul\":2094:2110 */\n add\n /* \"#utility.yul\":2143:2146 */\n dup5\n /* \"#utility.yul\":2134:2140 */\n dup5\n /* \"#utility.yul\":2129:2132 */\n dup5\n /* \"#utility.yul\":2125:2141 */\n add\n /* \"#utility.yul\":2122:2147 */\n gt\n /* \"#utility.yul\":2119:2231 */\n iszero\n tag_82\n jumpi\n /* \"#utility.yul\":2150:2229 */\n tag_83\n tag_25\n jump\t// in\ntag_83:\n /* \"#utility.yul\":2119:2231 */\ntag_82:\n /* \"#utility.yul\":2240:2292 */\n tag_84\n /* \"#utility.yul\":2285:2291 */\n dup5\n /* \"#utility.yul\":2280:2283 */\n dup3\n /* \"#utility.yul\":2275:2278 */\n dup6\n /* \"#utility.yul\":2240:2292 */\n tag_31\n jump\t// in\ntag_84:\n /* \"#utility.yul\":1959:2298 */\n pop\n /* \"#utility.yul\":1864:2298 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2318:2673 */\ntag_33:\n /* \"#utility.yul\":2385:2390 */\n 0x00\n /* \"#utility.yul\":2434:2437 */\n dup3\n /* \"#utility.yul\":2427:2431 */\n 0x1f\n /* \"#utility.yul\":2419:2425 */\n dup4\n /* \"#utility.yul\":2415:2432 */\n add\n /* \"#utility.yul\":2411:2438 */\n slt\n /* \"#utility.yul\":2401:2523 */\n tag_86\n jumpi\n /* \"#utility.yul\":2442:2521 */\n tag_87\n tag_24\n jump\t// in\ntag_87:\n /* \"#utility.yul\":2401:2523 */\ntag_86:\n /* \"#utility.yul\":2552:2558 */\n dup2\n /* \"#utility.yul\":2546:2559 */\n mload\n /* \"#utility.yul\":2577:2667 */\n tag_88\n /* \"#utility.yul\":2663:2666 */\n dup5\n /* \"#utility.yul\":2655:2661 */\n dup3\n /* \"#utility.yul\":2648:2652 */\n 0x20\n /* \"#utility.yul\":2640:2646 */\n dup7\n /* \"#utility.yul\":2636:2653 */\n add\n /* \"#utility.yul\":2577:2667 */\n tag_32\n jump\t// in\ntag_88:\n /* \"#utility.yul\":2568:2667 */\n swap2\n pop\n /* \"#utility.yul\":2391:2673 */\n pop\n /* \"#utility.yul\":2318:2673 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2679:3203 */\ntag_3:\n /* \"#utility.yul\":2759:2765 */\n 0x00\n /* \"#utility.yul\":2808:2810 */\n 0x20\n /* \"#utility.yul\":2796:2805 */\n dup3\n /* \"#utility.yul\":2787:2794 */\n dup5\n /* \"#utility.yul\":2783:2806 */\n sub\n /* \"#utility.yul\":2779:2811 */\n slt\n /* \"#utility.yul\":2776:2895 */\n iszero\n tag_90\n jumpi\n /* \"#utility.yul\":2814:2893 */\n tag_91\n tag_22\n jump\t// in\ntag_91:\n /* \"#utility.yul\":2776:2895 */\ntag_90:\n /* \"#utility.yul\":2955:2956 */\n 0x00\n /* \"#utility.yul\":2944:2953 */\n dup3\n /* \"#utility.yul\":2940:2957 */\n add\n /* \"#utility.yul\":2934:2958 */\n mload\n /* \"#utility.yul\":2985:3003 */\n 0xffffffffffffffff\n /* \"#utility.yul\":2977:2983 */\n dup2\n /* \"#utility.yul\":2974:3004 */\n gt\n /* \"#utility.yul\":2971:3088 */\n iszero\n tag_92\n jumpi\n /* \"#utility.yul\":3007:3086 */\n tag_93\n tag_23\n jump\t// in\ntag_93:\n /* \"#utility.yul\":2971:3088 */\ntag_92:\n /* \"#utility.yul\":3112:3186 */\n tag_94\n /* \"#utility.yul\":3178:3185 */\n dup5\n /* \"#utility.yul\":3169:3175 */\n dup3\n /* \"#utility.yul\":3158:3167 */\n dup6\n /* \"#utility.yul\":3154:3176 */\n add\n /* \"#utility.yul\":3112:3186 */\n tag_33\n jump\t// in\ntag_94:\n /* \"#utility.yul\":3102:3186 */\n swap2\n pop\n /* \"#utility.yul\":2905:3196 */\n pop\n /* \"#utility.yul\":2679:3203 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3209:3308 */\ntag_34:\n /* \"#utility.yul\":3261:3267 */\n 0x00\n /* \"#utility.yul\":3295:3300 */\n dup2\n /* \"#utility.yul\":3289:3301 */\n mload\n /* \"#utility.yul\":3279:3301 */\n swap1\n pop\n /* \"#utility.yul\":3209:3308 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3314:3494 */\ntag_35:\n /* \"#utility.yul\":3362:3439 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3359:3360 */\n 0x00\n /* \"#utility.yul\":3352:3440 */\n mstore\n /* \"#utility.yul\":3459:3463 */\n 0x22\n /* \"#utility.yul\":3456:3457 */\n 0x04\n /* \"#utility.yul\":3449:3464 */\n mstore\n /* \"#utility.yul\":3483:3487 */\n 0x24\n /* \"#utility.yul\":3480:3481 */\n 0x00\n /* \"#utility.yul\":3473:3488 */\n revert\n /* \"#utility.yul\":3500:3820 */\ntag_36:\n /* \"#utility.yul\":3544:3550 */\n 0x00\n /* \"#utility.yul\":3581:3582 */\n 0x02\n /* \"#utility.yul\":3575:3579 */\n dup3\n /* \"#utility.yul\":3571:3583 */\n div\n /* \"#utility.yul\":3561:3583 */\n swap1\n pop\n /* \"#utility.yul\":3628:3629 */\n 0x01\n /* \"#utility.yul\":3622:3626 */\n dup3\n /* \"#utility.yul\":3618:3630 */\n and\n /* \"#utility.yul\":3649:3667 */\n dup1\n /* \"#utility.yul\":3639:3720 */\n tag_98\n jumpi\n /* \"#utility.yul\":3705:3709 */\n 0x7f\n /* \"#utility.yul\":3697:3703 */\n dup3\n /* \"#utility.yul\":3693:3710 */\n and\n /* \"#utility.yul\":3683:3710 */\n swap2\n pop\n /* \"#utility.yul\":3639:3720 */\ntag_98:\n /* \"#utility.yul\":3767:3769 */\n 0x20\n /* \"#utility.yul\":3759:3765 */\n dup3\n /* \"#utility.yul\":3756:3770 */\n lt\n /* \"#utility.yul\":3736:3754 */\n dup2\n /* \"#utility.yul\":3733:3771 */\n sub\n /* \"#utility.yul\":3730:3814 */\n tag_99\n jumpi\n /* \"#utility.yul\":3786:3804 */\n tag_100\n tag_35\n jump\t// in\ntag_100:\n /* \"#utility.yul\":3730:3814 */\ntag_99:\n /* \"#utility.yul\":3551:3820 */\n pop\n /* \"#utility.yul\":3500:3820 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3826:3967 */\ntag_37:\n /* \"#utility.yul\":3875:3879 */\n 0x00\n /* \"#utility.yul\":3898:3901 */\n dup2\n /* \"#utility.yul\":3890:3901 */\n swap1\n pop\n /* \"#utility.yul\":3921:3924 */\n dup2\n /* \"#utility.yul\":3918:3919 */\n 0x00\n /* \"#utility.yul\":3911:3925 */\n mstore\n /* \"#utility.yul\":3955:3959 */\n 0x20\n /* \"#utility.yul\":3952:3953 */\n 0x00\n /* \"#utility.yul\":3942:3960 */\n keccak256\n /* \"#utility.yul\":3934:3960 */\n swap1\n pop\n /* \"#utility.yul\":3826:3967 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3973:4066 */\ntag_38:\n /* \"#utility.yul\":4010:4016 */\n 0x00\n /* \"#utility.yul\":4057:4059 */\n 0x20\n /* \"#utility.yul\":4052:4054 */\n 0x1f\n /* \"#utility.yul\":4045:4050 */\n dup4\n /* \"#utility.yul\":4041:4055 */\n add\n /* \"#utility.yul\":4037:4060 */\n div\n /* \"#utility.yul\":4027:4060 */\n swap1\n pop\n /* \"#utility.yul\":3973:4066 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4072:4179 */\ntag_39:\n /* \"#utility.yul\":4116:4124 */\n 0x00\n /* \"#utility.yul\":4166:4171 */\n dup3\n /* \"#utility.yul\":4160:4164 */\n dup3\n /* \"#utility.yul\":4156:4172 */\n shl\n /* \"#utility.yul\":4135:4172 */\n swap1\n pop\n /* \"#utility.yul\":4072:4179 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4185:4578 */\ntag_40:\n /* \"#utility.yul\":4254:4260 */\n 0x00\n /* \"#utility.yul\":4304:4305 */\n 0x08\n /* \"#utility.yul\":4292:4302 */\n dup4\n /* \"#utility.yul\":4288:4306 */\n mul\n /* \"#utility.yul\":4327:4424 */\n tag_105\n /* \"#utility.yul\":4357:4423 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":4346:4355 */\n dup3\n /* \"#utility.yul\":4327:4424 */\n tag_39\n jump\t// in\ntag_105:\n /* \"#utility.yul\":4445:4484 */\n tag_106\n /* \"#utility.yul\":4475:4483 */\n dup7\n /* \"#utility.yul\":4464:4473 */\n dup4\n /* \"#utility.yul\":4445:4484 */\n tag_39\n jump\t// in\ntag_106:\n /* \"#utility.yul\":4433:4484 */\n swap6\n pop\n /* \"#utility.yul\":4517:4521 */\n dup1\n /* \"#utility.yul\":4513:4522 */\n not\n /* \"#utility.yul\":4506:4511 */\n dup5\n /* \"#utility.yul\":4502:4523 */\n and\n /* \"#utility.yul\":4493:4523 */\n swap4\n pop\n /* \"#utility.yul\":4566:4570 */\n dup1\n /* \"#utility.yul\":4556:4564 */\n dup7\n /* \"#utility.yul\":4552:4571 */\n and\n /* \"#utility.yul\":4545:4550 */\n dup5\n /* \"#utility.yul\":4542:4572 */\n or\n /* \"#utility.yul\":4532:4572 */\n swap3\n pop\n /* \"#utility.yul\":4261:4578 */\n pop\n pop\n /* \"#utility.yul\":4185:4578 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4584:4661 */\ntag_41:\n /* \"#utility.yul\":4621:4628 */\n 0x00\n /* \"#utility.yul\":4650:4655 */\n dup2\n /* \"#utility.yul\":4639:4655 */\n swap1\n pop\n /* \"#utility.yul\":4584:4661 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4667:4727 */\ntag_42:\n /* \"#utility.yul\":4695:4698 */\n 0x00\n /* \"#utility.yul\":4716:4721 */\n dup2\n /* \"#utility.yul\":4709:4721 */\n swap1\n pop\n /* \"#utility.yul\":4667:4727 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4733:4875 */\ntag_43:\n /* \"#utility.yul\":4783:4792 */\n 0x00\n /* \"#utility.yul\":4816:4869 */\n tag_110\n /* \"#utility.yul\":4834:4868 */\n tag_111\n /* \"#utility.yul\":4843:4867 */\n tag_112\n /* \"#utility.yul\":4861:4866 */\n dup5\n /* \"#utility.yul\":4843:4867 */\n tag_41\n jump\t// in\ntag_112:\n /* \"#utility.yul\":4834:4868 */\n tag_42\n jump\t// in\ntag_111:\n /* \"#utility.yul\":4816:4869 */\n tag_41\n jump\t// in\ntag_110:\n /* \"#utility.yul\":4803:4869 */\n swap1\n pop\n /* \"#utility.yul\":4733:4875 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4881:4956 */\ntag_44:\n /* \"#utility.yul\":4924:4927 */\n 0x00\n /* \"#utility.yul\":4945:4950 */\n dup2\n /* \"#utility.yul\":4938:4950 */\n swap1\n pop\n /* \"#utility.yul\":4881:4956 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4962:5231 */\ntag_45:\n /* \"#utility.yul\":5072:5111 */\n tag_115\n /* \"#utility.yul\":5103:5110 */\n dup4\n /* \"#utility.yul\":5072:5111 */\n tag_43\n jump\t// in\ntag_115:\n /* \"#utility.yul\":5133:5224 */\n tag_116\n /* \"#utility.yul\":5182:5223 */\n tag_117\n /* \"#utility.yul\":5206:5222 */\n dup3\n /* \"#utility.yul\":5182:5223 */\n tag_44\n jump\t// in\ntag_117:\n /* \"#utility.yul\":5174:5180 */\n dup5\n /* \"#utility.yul\":5167:5171 */\n dup5\n /* \"#utility.yul\":5161:5172 */\n sload\n /* \"#utility.yul\":5133:5224 */\n tag_40\n jump\t// in\ntag_116:\n /* \"#utility.yul\":5127:5131 */\n dup3\n /* \"#utility.yul\":5120:5225 */\n sstore\n /* \"#utility.yul\":5038:5231 */\n pop\n /* \"#utility.yul\":4962:5231 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5237:5310 */\ntag_46:\n /* \"#utility.yul\":5282:5285 */\n 0x00\n /* \"#utility.yul\":5237:5310 */\n swap1\n jump\t// out\n /* \"#utility.yul\":5316:5505 */\ntag_47:\n /* \"#utility.yul\":5393:5425 */\n tag_120\n tag_46\n jump\t// in\ntag_120:\n /* \"#utility.yul\":5434:5499 */\n tag_121\n /* \"#utility.yul\":5492:5498 */\n dup2\n /* \"#utility.yul\":5484:5490 */\n dup5\n /* \"#utility.yul\":5478:5482 */\n dup5\n /* \"#utility.yul\":5434:5499 */\n tag_45\n jump\t// in\ntag_121:\n /* \"#utility.yul\":5369:5505 */\n pop\n /* \"#utility.yul\":5316:5505 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5511:5697 */\ntag_48:\n /* \"#utility.yul\":5571:5691 */\ntag_123:\n /* \"#utility.yul\":5588:5591 */\n dup2\n /* \"#utility.yul\":5581:5586 */\n dup2\n /* \"#utility.yul\":5578:5592 */\n lt\n /* \"#utility.yul\":5571:5691 */\n iszero\n tag_125\n jumpi\n /* \"#utility.yul\":5642:5681 */\n tag_126\n /* \"#utility.yul\":5679:5680 */\n 0x00\n /* \"#utility.yul\":5672:5677 */\n dup3\n /* \"#utility.yul\":5642:5681 */\n tag_47\n jump\t// in\ntag_126:\n /* \"#utility.yul\":5615:5616 */\n 0x01\n /* \"#utility.yul\":5608:5613 */\n dup2\n /* \"#utility.yul\":5604:5617 */\n add\n /* \"#utility.yul\":5595:5617 */\n swap1\n pop\n /* \"#utility.yul\":5571:5691 */\n jump(tag_123)\ntag_125:\n /* \"#utility.yul\":5511:5697 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5703:6246 */\ntag_49:\n /* \"#utility.yul\":5804:5806 */\n 0x1f\n /* \"#utility.yul\":5799:5802 */\n dup3\n /* \"#utility.yul\":5796:5807 */\n gt\n /* \"#utility.yul\":5793:6239 */\n iszero\n tag_128\n jumpi\n /* \"#utility.yul\":5838:5876 */\n tag_129\n /* \"#utility.yul\":5870:5875 */\n dup2\n /* \"#utility.yul\":5838:5876 */\n tag_37\n jump\t// in\ntag_129:\n /* \"#utility.yul\":5922:5951 */\n tag_130\n /* \"#utility.yul\":5940:5950 */\n dup5\n /* \"#utility.yul\":5922:5951 */\n tag_38\n jump\t// in\ntag_130:\n /* \"#utility.yul\":5912:5920 */\n dup2\n /* \"#utility.yul\":5908:5952 */\n add\n /* \"#utility.yul\":6105:6107 */\n 0x20\n /* \"#utility.yul\":6093:6103 */\n dup6\n /* \"#utility.yul\":6090:6108 */\n lt\n /* \"#utility.yul\":6087:6136 */\n iszero\n tag_131\n jumpi\n /* \"#utility.yul\":6126:6134 */\n dup2\n /* \"#utility.yul\":6111:6134 */\n swap1\n pop\n /* \"#utility.yul\":6087:6136 */\ntag_131:\n /* \"#utility.yul\":6149:6229 */\n tag_132\n /* \"#utility.yul\":6205:6227 */\n tag_133\n /* \"#utility.yul\":6223:6226 */\n dup6\n /* \"#utility.yul\":6205:6227 */\n tag_38\n jump\t// in\ntag_133:\n /* \"#utility.yul\":6195:6203 */\n dup4\n /* \"#utility.yul\":6191:6228 */\n add\n /* \"#utility.yul\":6178:6189 */\n dup3\n /* \"#utility.yul\":6149:6229 */\n tag_48\n jump\t// in\ntag_132:\n /* \"#utility.yul\":5808:6239 */\n pop\n pop\n /* \"#utility.yul\":5793:6239 */\ntag_128:\n /* \"#utility.yul\":5703:6246 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6252:6369 */\ntag_50:\n /* \"#utility.yul\":6306:6314 */\n 0x00\n /* \"#utility.yul\":6356:6361 */\n dup3\n /* \"#utility.yul\":6350:6354 */\n dup3\n /* \"#utility.yul\":6346:6362 */\n shr\n /* \"#utility.yul\":6325:6362 */\n swap1\n pop\n /* \"#utility.yul\":6252:6369 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6375:6544 */\ntag_51:\n /* \"#utility.yul\":6419:6425 */\n 0x00\n /* \"#utility.yul\":6452:6503 */\n tag_136\n /* \"#utility.yul\":6500:6501 */\n 0x00\n /* \"#utility.yul\":6496:6502 */\n not\n /* \"#utility.yul\":6488:6493 */\n dup5\n /* \"#utility.yul\":6485:6486 */\n 0x08\n /* \"#utility.yul\":6481:6494 */\n mul\n /* \"#utility.yul\":6452:6503 */\n tag_50\n jump\t// in\ntag_136:\n /* \"#utility.yul\":6448:6504 */\n not\n /* \"#utility.yul\":6533:6537 */\n dup1\n /* \"#utility.yul\":6527:6531 */\n dup4\n /* \"#utility.yul\":6523:6538 */\n and\n /* \"#utility.yul\":6513:6538 */\n swap2\n pop\n /* \"#utility.yul\":6426:6544 */\n pop\n /* \"#utility.yul\":6375:6544 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6549:6844 */\ntag_52:\n /* \"#utility.yul\":6625:6629 */\n 0x00\n /* \"#utility.yul\":6771:6800 */\n tag_138\n /* \"#utility.yul\":6796:6799 */\n dup4\n /* \"#utility.yul\":6790:6794 */\n dup4\n /* \"#utility.yul\":6771:6800 */\n tag_51\n jump\t// in\ntag_138:\n /* \"#utility.yul\":6763:6800 */\n swap2\n pop\n /* \"#utility.yul\":6833:6836 */\n dup3\n /* \"#utility.yul\":6830:6831 */\n 0x02\n /* \"#utility.yul\":6826:6837 */\n mul\n /* \"#utility.yul\":6820:6824 */\n dup3\n /* \"#utility.yul\":6817:6838 */\n or\n /* \"#utility.yul\":6809:6838 */\n swap1\n pop\n /* \"#utility.yul\":6549:6844 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6849:8244 */\ntag_9:\n /* \"#utility.yul\":6966:7003 */\n tag_140\n /* \"#utility.yul\":6999:7002 */\n dup3\n /* \"#utility.yul\":6966:7003 */\n tag_34\n jump\t// in\ntag_140:\n /* \"#utility.yul\":7068:7086 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7060:7066 */\n dup2\n /* \"#utility.yul\":7057:7087 */\n gt\n /* \"#utility.yul\":7054:7110 */\n iszero\n tag_141\n jumpi\n /* \"#utility.yul\":7090:7108 */\n tag_142\n tag_27\n jump\t// in\ntag_142:\n /* \"#utility.yul\":7054:7110 */\ntag_141:\n /* \"#utility.yul\":7134:7172 */\n tag_143\n /* \"#utility.yul\":7166:7170 */\n dup3\n /* \"#utility.yul\":7160:7171 */\n sload\n /* \"#utility.yul\":7134:7172 */\n tag_36\n jump\t// in\ntag_143:\n /* \"#utility.yul\":7219:7286 */\n tag_144\n /* \"#utility.yul\":7279:7285 */\n dup3\n /* \"#utility.yul\":7271:7277 */\n dup3\n /* \"#utility.yul\":7265:7269 */\n dup6\n /* \"#utility.yul\":7219:7286 */\n tag_49\n jump\t// in\ntag_144:\n /* \"#utility.yul\":7313:7314 */\n 0x00\n /* \"#utility.yul\":7337:7341 */\n 0x20\n /* \"#utility.yul\":7324:7341 */\n swap1\n pop\n /* \"#utility.yul\":7369:7371 */\n 0x1f\n /* \"#utility.yul\":7361:7367 */\n dup4\n /* \"#utility.yul\":7358:7372 */\n gt\n /* \"#utility.yul\":7386:7387 */\n 0x01\n /* \"#utility.yul\":7381:7999 */\n dup2\n eq\n tag_146\n jumpi\n /* \"#utility.yul\":8043:8044 */\n 0x00\n /* \"#utility.yul\":8060:8066 */\n dup5\n /* \"#utility.yul\":8057:8134 */\n iszero\n tag_147\n jumpi\n /* \"#utility.yul\":8109:8118 */\n dup3\n /* \"#utility.yul\":8104:8107 */\n dup8\n /* \"#utility.yul\":8100:8119 */\n add\n /* \"#utility.yul\":8094:8120 */\n mload\n /* \"#utility.yul\":8085:8120 */\n swap1\n pop\n /* \"#utility.yul\":8057:8134 */\ntag_147:\n /* \"#utility.yul\":8160:8227 */\n tag_148\n /* \"#utility.yul\":8220:8226 */\n dup6\n /* \"#utility.yul\":8213:8218 */\n dup3\n /* \"#utility.yul\":8160:8227 */\n tag_52\n jump\t// in\ntag_148:\n /* \"#utility.yul\":8154:8158 */\n dup7\n /* \"#utility.yul\":8147:8228 */\n sstore\n /* \"#utility.yul\":8016:8238 */\n pop\n /* \"#utility.yul\":7351:8238 */\n jump(tag_145)\n /* \"#utility.yul\":7381:7999 */\ntag_146:\n /* \"#utility.yul\":7433:7437 */\n 0x1f\n /* \"#utility.yul\":7429:7438 */\n not\n /* \"#utility.yul\":7421:7427 */\n dup5\n /* \"#utility.yul\":7417:7439 */\n and\n /* \"#utility.yul\":7467:7504 */\n tag_149\n /* \"#utility.yul\":7499:7503 */\n dup7\n /* \"#utility.yul\":7467:7504 */\n tag_37\n jump\t// in\ntag_149:\n /* \"#utility.yul\":7526:7527 */\n 0x00\n /* \"#utility.yul\":7540:7748 */\ntag_150:\n /* \"#utility.yul\":7554:7561 */\n dup3\n /* \"#utility.yul\":7551:7552 */\n dup2\n /* \"#utility.yul\":7548:7562 */\n lt\n /* \"#utility.yul\":7540:7748 */\n iszero\n tag_152\n jumpi\n /* \"#utility.yul\":7633:7642 */\n dup5\n /* \"#utility.yul\":7628:7631 */\n dup10\n /* \"#utility.yul\":7624:7643 */\n add\n /* \"#utility.yul\":7618:7644 */\n mload\n /* \"#utility.yul\":7610:7616 */\n dup3\n /* \"#utility.yul\":7603:7645 */\n sstore\n /* \"#utility.yul\":7684:7685 */\n 0x01\n /* \"#utility.yul\":7676:7682 */\n dup3\n /* \"#utility.yul\":7672:7686 */\n add\n /* \"#utility.yul\":7662:7686 */\n swap2\n pop\n /* \"#utility.yul\":7731:7733 */\n 0x20\n /* \"#utility.yul\":7720:7729 */\n dup6\n /* \"#utility.yul\":7716:7734 */\n add\n /* \"#utility.yul\":7703:7734 */\n swap5\n pop\n /* \"#utility.yul\":7577:7581 */\n 0x20\n /* \"#utility.yul\":7574:7575 */\n dup2\n /* \"#utility.yul\":7570:7582 */\n add\n /* \"#utility.yul\":7565:7582 */\n swap1\n pop\n /* \"#utility.yul\":7540:7748 */\n jump(tag_150)\ntag_152:\n /* \"#utility.yul\":7776:7782 */\n dup7\n /* \"#utility.yul\":7767:7774 */\n dup4\n /* \"#utility.yul\":7764:7783 */\n lt\n /* \"#utility.yul\":7761:7940 */\n iszero\n tag_153\n jumpi\n /* \"#utility.yul\":7834:7843 */\n dup5\n /* \"#utility.yul\":7829:7832 */\n dup10\n /* \"#utility.yul\":7825:7844 */\n add\n /* \"#utility.yul\":7819:7845 */\n mload\n /* \"#utility.yul\":7877:7925 */\n tag_154\n /* \"#utility.yul\":7919:7923 */\n 0x1f\n /* \"#utility.yul\":7911:7917 */\n dup10\n /* \"#utility.yul\":7907:7924 */\n and\n /* \"#utility.yul\":7896:7905 */\n dup3\n /* \"#utility.yul\":7877:7925 */\n tag_51\n jump\t// in\ntag_154:\n /* \"#utility.yul\":7869:7875 */\n dup4\n /* \"#utility.yul\":7862:7926 */\n sstore\n /* \"#utility.yul\":7784:7940 */\n pop\n /* \"#utility.yul\":7761:7940 */\ntag_153:\n /* \"#utility.yul\":7986:7987 */\n 0x01\n /* \"#utility.yul\":7982:7983 */\n 0x02\n /* \"#utility.yul\":7974:7980 */\n dup9\n /* \"#utility.yul\":7970:7984 */\n mul\n /* \"#utility.yul\":7966:7988 */\n add\n /* \"#utility.yul\":7960:7964 */\n dup9\n /* \"#utility.yul\":7953:7989 */\n sstore\n /* \"#utility.yul\":7388:7999 */\n pop\n pop\n pop\n /* \"#utility.yul\":7351:8238 */\ntag_145:\n pop\n /* \"#utility.yul\":6941:8244 */\n pop\n pop\n pop\n /* \"#utility.yul\":6849:8244 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8250:8376 */\ntag_53:\n /* \"#utility.yul\":8287:8294 */\n 0x00\n /* \"#utility.yul\":8327:8369 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":8320:8325 */\n dup3\n /* \"#utility.yul\":8316:8370 */\n and\n /* \"#utility.yul\":8305:8370 */\n swap1\n pop\n /* \"#utility.yul\":8250:8376 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8382:8478 */\ntag_54:\n /* \"#utility.yul\":8419:8426 */\n 0x00\n /* \"#utility.yul\":8448:8472 */\n tag_157\n /* \"#utility.yul\":8466:8471 */\n dup3\n /* \"#utility.yul\":8448:8472 */\n tag_53\n jump\t// in\ntag_157:\n /* \"#utility.yul\":8437:8472 */\n swap1\n pop\n /* \"#utility.yul\":8382:8478 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8484:8602 */\ntag_55:\n /* \"#utility.yul\":8571:8595 */\n tag_159\n /* \"#utility.yul\":8589:8594 */\n dup2\n /* \"#utility.yul\":8571:8595 */\n tag_54\n jump\t// in\ntag_159:\n /* \"#utility.yul\":8566:8569 */\n dup3\n /* \"#utility.yul\":8559:8596 */\n mstore\n /* \"#utility.yul\":8484:8602 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8608:8830 */\ntag_14:\n /* \"#utility.yul\":8701:8705 */\n 0x00\n /* \"#utility.yul\":8739:8741 */\n 0x20\n /* \"#utility.yul\":8728:8737 */\n dup3\n /* \"#utility.yul\":8724:8742 */\n add\n /* \"#utility.yul\":8716:8742 */\n swap1\n pop\n /* \"#utility.yul\":8752:8823 */\n tag_161\n /* \"#utility.yul\":8820:8821 */\n 0x00\n /* \"#utility.yul\":8809:8818 */\n dup4\n /* \"#utility.yul\":8805:8822 */\n add\n /* \"#utility.yul\":8796:8802 */\n dup5\n /* \"#utility.yul\":8752:8823 */\n tag_55\n jump\t// in\ntag_161:\n /* \"#utility.yul\":8608:8830 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/NFT.sol\":428:2417 contract CoreNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {... */\ntag_19:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/NFT.sol\":428:2417 contract CoreNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x56189236\n gt\n tag_25\n jumpi\n dup1\n 0x95d89b41\n gt\n tag_26\n jumpi\n dup1\n 0x95d89b41\n eq\n tag_19\n jumpi\n dup1\n 0xa22cb465\n eq\n tag_20\n jumpi\n dup1\n 0xb88d4fde\n eq\n tag_21\n jumpi\n dup1\n 0xc87b56dd\n eq\n tag_22\n jumpi\n dup1\n 0xe985e9c5\n eq\n tag_23\n jumpi\n dup1\n 0xf2fde38b\n eq\n tag_24\n jumpi\n jump(tag_2)\n tag_26:\n dup1\n 0x56189236\n eq\n tag_14\n jumpi\n dup1\n 0x6352211e\n eq\n tag_15\n jumpi\n dup1\n 0x70a08231\n eq\n tag_16\n jumpi\n dup1\n 0x715018a6\n eq\n tag_17\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_18\n jumpi\n jump(tag_2)\n tag_25:\n dup1\n 0x23b872dd\n gt\n tag_27\n jumpi\n dup1\n 0x23b872dd\n eq\n tag_8\n jumpi\n dup1\n 0x2f745c59\n eq\n tag_9\n jumpi\n dup1\n 0x40d097c3\n eq\n tag_10\n jumpi\n dup1\n 0x42842e0e\n eq\n tag_11\n jumpi\n dup1\n 0x4f6ccce7\n eq\n tag_12\n jumpi\n dup1\n 0x55f804b3\n eq\n tag_13\n jumpi\n jump(tag_2)\n tag_27:\n dup1\n 0x01ffc9a7\n eq\n tag_3\n jumpi\n dup1\n 0x06fdde03\n eq\n tag_4\n jumpi\n dup1\n 0x081812fc\n eq\n tag_5\n jumpi\n dup1\n 0x095ea7b3\n eq\n tag_6\n jumpi\n dup1\n 0x18160ddd\n eq\n tag_7\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/NFT.sol\":2178:2415 function supportsInterface(... */\n tag_3:\n tag_28\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_29\n swap2\n swap1\n tag_30\n jump\t// in\n tag_29:\n tag_31\n jump\t// in\n tag_28:\n mload(0x40)\n tag_32\n swap2\n swap1\n tag_33\n jump\t// in\n tag_32:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2365:2454 function name() public view virtual returns (string memory) {... */\n tag_4:\n tag_34\n tag_35\n jump\t// in\n tag_34:\n mload(0x40)\n tag_36\n swap2\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3497:3651 function getApproved(uint256 tokenId) public view virtual returns (address) {... */\n tag_5:\n tag_38\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_39\n swap2\n swap1\n tag_40\n jump\t// in\n tag_39:\n tag_41\n jump\t// in\n tag_38:\n mload(0x40)\n tag_42\n swap2\n swap1\n tag_43\n jump\t// in\n tag_42:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3323:3436 function approve(address to, uint256 tokenId) public virtual {... */\n tag_6:\n tag_44\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_45\n swap2\n swap1\n tag_46\n jump\t// in\n tag_45:\n tag_47\n jump\t// in\n tag_44:\n stop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2062:2164 function totalSupply() public view virtual returns (uint256) {... */\n tag_7:\n tag_48\n tag_49\n jump\t// in\n tag_48:\n mload(0x40)\n tag_50\n swap2\n swap1\n tag_51\n jump\t// in\n tag_50:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4143:4721 function transferFrom(address from, address to, uint256 tokenId) public virtual {... */\n tag_8:\n tag_52\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_53\n swap2\n swap1\n tag_54\n jump\t// in\n tag_53:\n tag_55\n jump\t// in\n tag_52:\n stop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1736:1991 function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual returns (uint256) {... */\n tag_9:\n tag_56\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_57\n swap2\n swap1\n tag_46\n jump\t// in\n tag_57:\n tag_58\n jump\t// in\n tag_56:\n mload(0x40)\n tag_59\n swap2\n swap1\n tag_51\n jump\t// in\n tag_59:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/NFT.sol\":891:1146 function safeMint(address to) public onlyOwner {... */\n tag_10:\n tag_60\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_61\n swap2\n swap1\n tag_62\n jump\t// in\n tag_61:\n tag_63\n jump\t// in\n tag_60:\n stop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4787:4919 function safeTransferFrom(address from, address to, uint256 tokenId) public {... */\n tag_11:\n tag_64\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_65\n swap2\n swap1\n tag_54\n jump\t// in\n tag_65:\n tag_66\n jump\t// in\n tag_64:\n stop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2236:2462 function tokenByIndex(uint256 index) public view virtual returns (uint256) {... */\n tag_12:\n tag_67\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_68\n swap2\n swap1\n tag_40\n jump\t// in\n tag_68:\n tag_69\n jump\t// in\n tag_67:\n mload(0x40)\n tag_70\n swap2\n swap1\n tag_51\n jump\t// in\n tag_70:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/NFT.sol\":779:886 function setBaseURI(string memory baseURI_) external onlyOwner {... */\n tag_13:\n tag_71\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_72\n swap2\n swap1\n tag_73\n jump\t// in\n tag_72:\n tag_74\n jump\t// in\n tag_71:\n stop\n /* \"contracts/NFT.sol\":1271:1366 function getCurrentTokenId() public view returns (uint256) {... */\n tag_14:\n tag_75\n tag_76\n jump\t// in\n tag_75:\n mload(0x40)\n tag_77\n swap2\n swap1\n tag_51\n jump\t// in\n tag_77:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2185:2303 function ownerOf(uint256 tokenId) public view virtual returns (address) {... */\n tag_15:\n tag_78\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_79\n swap2\n swap1\n tag_40\n jump\t// in\n tag_79:\n tag_80\n jump\t// in\n tag_78:\n mload(0x40)\n tag_81\n swap2\n swap1\n tag_43\n jump\t// in\n tag_81:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1920:2128 function balanceOf(address owner) public view virtual returns (uint256) {... */\n tag_16:\n tag_82\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_83\n swap2\n swap1\n tag_62\n jump\t// in\n tag_83:\n tag_84\n jump\t// in\n tag_82:\n mload(0x40)\n tag_85\n swap2\n swap1\n tag_51\n jump\t// in\n tag_85:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2293:2394 function renounceOwnership() public virtual onlyOwner {... */\n tag_17:\n tag_86\n tag_87\n jump\t// in\n tag_86:\n stop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1638:1723 function owner() public view virtual returns (address) {... */\n tag_18:\n tag_88\n tag_89\n jump\t// in\n tag_88:\n mload(0x40)\n tag_90\n swap2\n swap1\n tag_43\n jump\t// in\n tag_90:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2518:2611 function symbol() public view virtual returns (string memory) {... */\n tag_19:\n tag_91\n tag_92\n jump\t// in\n tag_91:\n mload(0x40)\n tag_93\n swap2\n swap1\n tag_37\n jump\t// in\n tag_93:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3718:3862 function setApprovalForAll(address operator, bool approved) public virtual {... */\n tag_20:\n tag_94\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_95\n swap2\n swap1\n tag_96\n jump\t// in\n tag_95:\n tag_97\n jump\t// in\n tag_94:\n stop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4985:5193 function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {... */\n tag_21:\n tag_98\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_99\n swap2\n swap1\n tag_100\n jump\t// in\n tag_99:\n tag_101\n jump\t// in\n tag_98:\n stop\n /* \"contracts/NFT.sol\":1846:2173 function tokenURI(... */\n tag_22:\n tag_102\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_103\n swap2\n swap1\n tag_40\n jump\t// in\n tag_103:\n tag_104\n jump\t// in\n tag_102:\n mload(0x40)\n tag_105\n swap2\n swap1\n tag_37\n jump\t// in\n tag_105:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3928:4081 function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {... */\n tag_23:\n tag_106\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_107\n swap2\n swap1\n tag_108\n jump\t// in\n tag_107:\n tag_109\n jump\t// in\n tag_106:\n mload(0x40)\n tag_110\n swap2\n swap1\n tag_33\n jump\t// in\n tag_110:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2543:2758 function transferOwnership(address newOwner) public virtual onlyOwner {... */\n tag_24:\n tag_111\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_112\n swap2\n swap1\n tag_62\n jump\t// in\n tag_112:\n tag_113\n jump\t// in\n tag_111:\n stop\n /* \"contracts/NFT.sol\":2178:2415 function supportsInterface(... */\n tag_31:\n /* \"contracts/NFT.sol\":2345:2349 bool */\n 0x00\n /* \"contracts/NFT.sol\":2372:2408 super.supportsInterface(interfaceId) */\n tag_115\n /* \"contracts/NFT.sol\":2396:2407 interfaceId */\n dup3\n /* \"contracts/NFT.sol\":2372:2395 super.supportsInterface */\n tag_116\n /* \"contracts/NFT.sol\":2372:2408 super.supportsInterface(interfaceId) */\n jump\t// in\n tag_115:\n /* \"contracts/NFT.sol\":2365:2408 return super.supportsInterface(interfaceId) */\n swap1\n pop\n /* \"contracts/NFT.sol\":2178:2415 function supportsInterface(... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2365:2454 function name() public view virtual returns (string memory) {... */\n tag_35:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2410:2423 string memory */\n 0x60\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2442:2447 _name */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2435:2447 return _name */\n dup1\n sload\n tag_118\n swap1\n tag_119\n jump\t// in\n tag_118:\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n tag_120\n swap1\n tag_119\n jump\t// in\n tag_120:\n dup1\n iszero\n tag_121\n jumpi\n dup1\n 0x1f\n lt\n tag_122\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_121)\n tag_122:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_123:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_123\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_121:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2365:2454 function name() public view virtual returns (string memory) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3497:3651 function getApproved(uint256 tokenId) public view virtual returns (address) {... */\n tag_41:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3564:3571 address */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3583:3605 _requireOwned(tokenId) */\n tag_125\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3597:3604 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3583:3596 _requireOwned */\n tag_126\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3583:3605 _requireOwned(tokenId) */\n jump\t// in\n tag_125:\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3623:3644 _getApproved(tokenId) */\n tag_127\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3636:3643 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3623:3635 _getApproved */\n tag_128\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3623:3644 _getApproved(tokenId) */\n jump\t// in\n tag_127:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3616:3644 return _getApproved(tokenId) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3497:3651 function getApproved(uint256 tokenId) public view virtual returns (address) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3323:3436 function approve(address to, uint256 tokenId) public virtual {... */\n tag_47:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3394:3429 _approve(to, tokenId, _msgSender()) */\n tag_130\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3403:3405 to */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3407:3414 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3416:3428 _msgSender() */\n tag_131\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3416:3426 _msgSender */\n tag_132\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3416:3428 _msgSender() */\n jump\t// in\n tag_131:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3394:3402 _approve */\n tag_133\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3394:3429 _approve(to, tokenId, _msgSender()) */\n jump\t// in\n tag_130:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3323:3436 function approve(address to, uint256 tokenId) public virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2062:2164 function totalSupply() public view virtual returns (uint256) {... */\n tag_49:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2114:2121 uint256 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2140:2150 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2140:2157 _allTokens.length */\n dup1\n sload\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2133:2157 return _allTokens.length */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2062:2164 function totalSupply() public view virtual returns (uint256) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4143:4721 function transferFrom(address from, address to, uint256 tokenId) public virtual {... */\n tag_55:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4251:4252 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4237:4253 to == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4237:4239 to */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4237:4253 to == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4233:4320 if (to == address(0)) {... */\n tag_136\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4306:4307 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4276:4309 ERC721InvalidReceiver(address(0)) */\n mload(0x40)\n 0x64a0ae9200000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_137\n swap2\n swap1\n tag_43\n jump\t// in\n tag_137:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4233:4320 if (to == address(0)) {... */\n tag_136:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4538:4559 address previousOwner */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4562:4596 _update(to, tokenId, _msgSender()) */\n tag_138\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4570:4572 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4574:4581 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4583:4595 _msgSender() */\n tag_139\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4583:4593 _msgSender */\n tag_132\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4583:4595 _msgSender() */\n jump\t// in\n tag_139:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4562:4569 _update */\n tag_140\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4562:4596 _update(to, tokenId, _msgSender()) */\n jump\t// in\n tag_138:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4538:4596 address previousOwner = _update(to, tokenId, _msgSender()) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4627:4631 from */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4610:4631 previousOwner != from */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4610:4623 previousOwner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4610:4631 previousOwner != from */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4606:4715 if (previousOwner != from) {... */\n tag_141\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4675:4679 from */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4681:4688 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4690:4703 previousOwner */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4654:4704 ERC721IncorrectOwner(from, tokenId, previousOwner) */\n mload(0x40)\n 0x64283d7b00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_142\n swap4\n swap3\n swap2\n swap1\n tag_143\n jump\t// in\n tag_142:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4606:4715 if (previousOwner != from) {... */\n tag_141:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4223:4721 {... */\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4143:4721 function transferFrom(address from, address to, uint256 tokenId) public virtual {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1736:1991 function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual returns (uint256) {... */\n tag_58:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1824:1831 uint256 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1856:1872 balanceOf(owner) */\n tag_145\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1866:1871 owner */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1856:1865 balanceOf */\n tag_84\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1856:1872 balanceOf(owner) */\n jump\t// in\n tag_145:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1847:1852 index */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1847:1872 index >= balanceOf(owner) */\n lt\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1843:1942 if (index >= balanceOf(owner)) {... */\n tag_146\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1918:1923 owner */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1925:1930 index */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1895:1931 ERC721OutOfBoundsIndex(owner, index) */\n mload(0x40)\n 0xa57d13dc00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_147\n swap3\n swap2\n swap1\n tag_148\n jump\t// in\n tag_147:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1843:1942 if (index >= balanceOf(owner)) {... */\n tag_146:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1958:1970 _ownedTokens */\n 0x06\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1958:1977 _ownedTokens[owner] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1971:1976 owner */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1958:1977 _ownedTokens[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1958:1984 _ownedTokens[owner][index] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1978:1983 index */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1958:1984 _ownedTokens[owner][index] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1951:1984 return _ownedTokens[owner][index] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1736:1991 function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual returns (uint256) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/NFT.sol\":891:1146 function safeMint(address to) public onlyOwner {... */\n tag_63:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n tag_150\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1542 _checkOwner */\n tag_151\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n jump\t// in\n tag_150:\n /* \"contracts/NFT.sol\":948:963 uint256 tokenId */\n 0x00\n /* \"contracts/NFT.sol\":966:978 _nextTokenId */\n 0x0c\n 0x00\n /* \"contracts/NFT.sol\":966:980 _nextTokenId++ */\n dup2\n sload\n dup1\n swap3\n swap2\n swap1\n tag_153\n swap1\n tag_154\n jump\t// in\n tag_153:\n swap2\n swap1\n pop\n sstore\n /* \"contracts/NFT.sol\":948:980 uint256 tokenId = _nextTokenId++ */\n swap1\n pop\n /* \"contracts/NFT.sol\":990:1012 _safeMint(to, tokenId) */\n tag_155\n /* \"contracts/NFT.sol\":1000:1002 to */\n dup3\n /* \"contracts/NFT.sol\":1004:1011 tokenId */\n dup3\n /* \"contracts/NFT.sol\":990:999 _safeMint */\n tag_156\n /* \"contracts/NFT.sol\":990:1012 _safeMint(to, tokenId) */\n jump\t// in\n tag_155:\n /* \"contracts/NFT.sol\":1022:1139 _setTokenURI(... */\n tag_157\n /* \"contracts/NFT.sol\":1048:1055 tokenId */\n dup2\n /* \"contracts/NFT.sol\":1093:1118 Strings.toString(tokenId) */\n tag_158\n /* \"contracts/NFT.sol\":1110:1117 tokenId */\n dup4\n /* \"contracts/NFT.sol\":1093:1109 Strings.toString */\n tag_159\n /* \"contracts/NFT.sol\":1093:1118 Strings.toString(tokenId) */\n jump\t// in\n tag_158:\n /* \"contracts/NFT.sol\":1076:1128 abi.encodePacked(Strings.toString(tokenId), \".json\") */\n add(0x20, mload(0x40))\n tag_160\n swap2\n swap1\n tag_161\n jump\t// in\n tag_160:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"contracts/NFT.sol\":1022:1034 _setTokenURI */\n tag_162\n /* \"contracts/NFT.sol\":1022:1139 _setTokenURI(... */\n jump\t// in\n tag_157:\n /* \"contracts/NFT.sol\":938:1146 {... */\n pop\n /* \"contracts/NFT.sol\":891:1146 function safeMint(address to) public onlyOwner {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4787:4919 function safeTransferFrom(address from, address to, uint256 tokenId) public {... */\n tag_66:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4873:4912 safeTransferFrom(from, to, tokenId, \"\") */\n tag_164\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4890:4894 from */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4896:4898 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4900:4907 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4873:4912 safeTransferFrom(from, to, tokenId, \"\") */\n mload(0x40)\n dup1\n 0x20\n add\n 0x40\n mstore\n dup1\n 0x00\n dup2\n mstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4873:4889 safeTransferFrom */\n tag_101\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4873:4912 safeTransferFrom(from, to, tokenId, \"\") */\n jump\t// in\n tag_164:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4787:4919 function safeTransferFrom(address from, address to, uint256 tokenId) public {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2236:2462 function tokenByIndex(uint256 index) public view virtual returns (uint256) {... */\n tag_69:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2302:2309 uint256 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2334:2347 totalSupply() */\n tag_166\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2334:2345 totalSupply */\n tag_49\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2334:2347 totalSupply() */\n jump\t// in\n tag_166:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2325:2330 index */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2325:2347 index >= totalSupply() */\n lt\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2321:2422 if (index >= totalSupply()) {... */\n tag_167\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2401:2402 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2405:2410 index */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2370:2411 ERC721OutOfBoundsIndex(address(0), index) */\n mload(0x40)\n 0xa57d13dc00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_168\n swap3\n swap2\n swap1\n tag_148\n jump\t// in\n tag_168:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2321:2422 if (index >= totalSupply()) {... */\n tag_167:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2438:2448 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2449:2454 index */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2438:2455 _allTokens[index] */\n dup2\n sload\n dup2\n lt\n tag_169\n jumpi\n tag_170\n tag_171\n jump\t// in\n tag_170:\n tag_169:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n sload\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2431:2455 return _allTokens[index] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2236:2462 function tokenByIndex(uint256 index) public view virtual returns (uint256) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/NFT.sol\":779:886 function setBaseURI(string memory baseURI_) external onlyOwner {... */\n tag_74:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n tag_174\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1542 _checkOwner */\n tag_151\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n jump\t// in\n tag_174:\n /* \"contracts/NFT.sol\":871:879 baseURI_ */\n dup1\n /* \"contracts/NFT.sol\":852:868 _baseURIExtended */\n 0x0d\n /* \"contracts/NFT.sol\":852:879 _baseURIExtended = baseURI_ */\n swap1\n dup2\n tag_176\n swap2\n swap1\n tag_177\n jump\t// in\n tag_176:\n pop\n /* \"contracts/NFT.sol\":779:886 function setBaseURI(string memory baseURI_) external onlyOwner {... */\n pop\n jump\t// out\n /* \"contracts/NFT.sol\":1271:1366 function getCurrentTokenId() public view returns (uint256) {... */\n tag_76:\n /* \"contracts/NFT.sol\":1321:1328 uint256 */\n 0x00\n /* \"contracts/NFT.sol\":1347:1359 _nextTokenId */\n sload(0x0c)\n /* \"contracts/NFT.sol\":1340:1359 return _nextTokenId */\n swap1\n pop\n /* \"contracts/NFT.sol\":1271:1366 function getCurrentTokenId() public view returns (uint256) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2185:2303 function ownerOf(uint256 tokenId) public view virtual returns (address) {... */\n tag_80:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2248:2255 address */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2274:2296 _requireOwned(tokenId) */\n tag_180\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2288:2295 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2274:2287 _requireOwned */\n tag_126\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2274:2296 _requireOwned(tokenId) */\n jump\t// in\n tag_180:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2267:2296 return _requireOwned(tokenId) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2185:2303 function ownerOf(uint256 tokenId) public view virtual returns (address) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1920:2128 function balanceOf(address owner) public view virtual returns (uint256) {... */\n tag_84:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1983:1990 uint256 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2023:2024 0 */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2006:2025 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2006:2011 owner */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2006:2025 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2002:2089 if (owner == address(0)) {... */\n tag_182\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2075:2076 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2048:2078 ERC721InvalidOwner(address(0)) */\n mload(0x40)\n 0x89c62b6400000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_183\n swap2\n swap1\n tag_43\n jump\t// in\n tag_183:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2002:2089 if (owner == address(0)) {... */\n tag_182:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2105:2114 _balances */\n 0x03\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2105:2121 _balances[owner] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2115:2120 owner */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2105:2121 _balances[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2098:2121 return _balances[owner] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1920:2128 function balanceOf(address owner) public view virtual returns (uint256) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2293:2394 function renounceOwnership() public virtual onlyOwner {... */\n tag_87:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n tag_185\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1542 _checkOwner */\n tag_151\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n jump\t// in\n tag_185:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2357:2387 _transferOwnership(address(0)) */\n tag_187\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2384:2385 0 */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2357:2375 _transferOwnership */\n tag_188\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2357:2387 _transferOwnership(address(0)) */\n jump\t// in\n tag_187:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2293:2394 function renounceOwnership() public virtual onlyOwner {... */\n jump\t// out\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1638:1723 function owner() public view virtual returns (address) {... */\n tag_89:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1684:1691 address */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1710:1716 _owner */\n 0x0b\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1703:1716 return _owner */\n swap1\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1638:1723 function owner() public view virtual returns (address) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2518:2611 function symbol() public view virtual returns (string memory) {... */\n tag_92:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2565:2578 string memory */\n 0x60\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2597:2604 _symbol */\n 0x01\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2590:2604 return _symbol */\n dup1\n sload\n tag_191\n swap1\n tag_119\n jump\t// in\n tag_191:\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n tag_192\n swap1\n tag_119\n jump\t// in\n tag_192:\n dup1\n iszero\n tag_193\n jumpi\n dup1\n 0x1f\n lt\n tag_194\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_193)\n tag_194:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_195:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_195\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_193:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2518:2611 function symbol() public view virtual returns (string memory) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3718:3862 function setApprovalForAll(address operator, bool approved) public virtual {... */\n tag_97:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3803:3855 _setApprovalForAll(_msgSender(), operator, approved) */\n tag_197\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3822:3834 _msgSender() */\n tag_198\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3822:3832 _msgSender */\n tag_132\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3822:3834 _msgSender() */\n jump\t// in\n tag_198:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3836:3844 operator */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3846:3854 approved */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3803:3821 _setApprovalForAll */\n tag_199\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3803:3855 _setApprovalForAll(_msgSender(), operator, approved) */\n jump\t// in\n tag_197:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3718:3862 function setApprovalForAll(address operator, bool approved) public virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4985:5193 function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {... */\n tag_101:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5098:5129 transferFrom(from, to, tokenId) */\n tag_201\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5111:5115 from */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5117:5119 to */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5121:5128 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5098:5110 transferFrom */\n tag_55\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5098:5129 transferFrom(from, to, tokenId) */\n jump\t// in\n tag_201:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5139:5186 _checkOnERC721Received(from, to, tokenId, data) */\n tag_202\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5162:5166 from */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5168:5170 to */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5172:5179 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5181:5185 data */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5139:5161 _checkOnERC721Received */\n tag_203\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5139:5186 _checkOnERC721Received(from, to, tokenId, data) */\n jump\t// in\n tag_202:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4985:5193 function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {... */\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"contracts/NFT.sol\":1846:2173 function tokenURI(... */\n tag_104:\n /* \"contracts/NFT.sol\":1951:1964 string memory */\n 0x60\n /* \"contracts/NFT.sol\":1976:1997 string memory baseURI */\n 0x00\n /* \"contracts/NFT.sol\":2000:2010 _baseURI() */\n tag_205\n /* \"contracts/NFT.sol\":2000:2008 _baseURI */\n tag_206\n /* \"contracts/NFT.sol\":2000:2010 _baseURI() */\n jump\t// in\n tag_205:\n /* \"contracts/NFT.sol\":1976:2010 string memory baseURI = _baseURI() */\n swap1\n pop\n /* \"contracts/NFT.sol\":2063:2064 0 */\n 0x00\n /* \"contracts/NFT.sol\":2045:2052 baseURI */\n dup2\n /* \"contracts/NFT.sol\":2039:2060 bytes(baseURI).length */\n mload\n /* \"contracts/NFT.sol\":2039:2064 bytes(baseURI).length > 0 */\n gt\n /* \"contracts/NFT.sol\":2039:2166 bytes(baseURI).length > 0... */\n tag_207\n jumpi\n mload(0x40)\n dup1\n 0x20\n add\n 0x40\n mstore\n dup1\n 0x00\n dup2\n mstore\n pop\n jump(tag_208)\n tag_207:\n /* \"contracts/NFT.sol\":2107:2114 baseURI */\n dup1\n /* \"contracts/NFT.sol\":2116:2134 tokenId.toString() */\n tag_209\n /* \"contracts/NFT.sol\":2116:2123 tokenId */\n dup5\n /* \"contracts/NFT.sol\":2116:2132 tokenId.toString */\n tag_159\n /* \"contracts/NFT.sol\":2116:2134 tokenId.toString() */\n jump\t// in\n tag_209:\n /* \"contracts/NFT.sol\":2090:2144 abi.encodePacked(baseURI, tokenId.toString(), \".json\") */\n add(0x20, mload(0x40))\n tag_210\n swap3\n swap2\n swap1\n tag_211\n jump\t// in\n tag_210:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"contracts/NFT.sol\":2039:2166 bytes(baseURI).length > 0... */\n tag_208:\n /* \"contracts/NFT.sol\":2020:2166 return... */\n swap2\n pop\n pop\n /* \"contracts/NFT.sol\":1846:2173 function tokenURI(... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3928:4081 function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {... */\n tag_109:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4016:4020 bool */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4039:4057 _operatorApprovals */\n 0x05\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4039:4064 _operatorApprovals[owner] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4058:4063 owner */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4039:4064 _operatorApprovals[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4039:4074 _operatorApprovals[owner][operator] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4065:4073 operator */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4039:4074 _operatorApprovals[owner][operator] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4032:4074 return _operatorApprovals[owner][operator] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3928:4081 function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2543:2758 function transferOwnership(address newOwner) public virtual onlyOwner {... */\n tag_113:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n tag_214\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1542 _checkOwner */\n tag_151\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1531:1544 _checkOwner() */\n jump\t// in\n tag_214:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2647:2648 0 */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2627:2649 newOwner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2627:2635 newOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2627:2649 newOwner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2623:2714 if (newOwner == address(0)) {... */\n tag_216\n jumpi\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2700:2701 0 */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2672:2703 OwnableInvalidOwner(address(0)) */\n mload(0x40)\n 0x1e4fbdf700000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_217\n swap2\n swap1\n tag_43\n jump\t// in\n tag_217:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2623:2714 if (newOwner == address(0)) {... */\n tag_216:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2723:2751 _transferOwnership(newOwner) */\n tag_218\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2742:2750 newOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2723:2741 _transferOwnership */\n tag_188\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2723:2751 _transferOwnership(newOwner) */\n jump\t// in\n tag_218:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2543:2758 function transferOwnership(address newOwner) public virtual onlyOwner {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":937:1144 function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {... */\n tag_116:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1039:1043 bool */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":760:770 0x49064906 */\n 0x49064906\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":753:771 bytes4(0x49064906) */\n 0xe0\n shl\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1062:1097 interfaceId == ERC4906_INTERFACE_ID */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1062:1073 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1062:1097 interfaceId == ERC4906_INTERFACE_ID */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1062:1137 interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId) */\n dup1\n tag_220\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1101:1137 super.supportsInterface(interfaceId) */\n tag_221\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1125:1136 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1101:1124 super.supportsInterface */\n tag_222\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1101:1137 super.supportsInterface(interfaceId) */\n jump\t// in\n tag_221:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1062:1137 interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId) */\n tag_220:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1055:1137 return interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":937:1144 function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16138:16379 function _requireOwned(uint256 tokenId) internal view returns (address) {... */\n tag_126:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16201:16208 address */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16220:16233 address owner */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16236:16253 _ownerOf(tokenId) */\n tag_224\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16245:16252 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16236:16244 _ownerOf */\n tag_225\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16236:16253 _ownerOf(tokenId) */\n jump\t// in\n tag_224:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16220:16253 address owner = _ownerOf(tokenId) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16284:16285 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16267:16286 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16267:16272 owner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16267:16286 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16263:16351 if (owner == address(0)) {... */\n tag_226\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16332:16339 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16309:16340 ERC721NonexistentToken(tokenId) */\n mload(0x40)\n 0x7e27328900000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_227\n swap2\n swap1\n tag_51\n jump\t// in\n tag_227:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16263:16351 if (owner == address(0)) {... */\n tag_226:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16367:16372 owner */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16360:16372 return owner */\n swap2\n pop\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16138:16379 function _requireOwned(uint256 tokenId) internal view returns (address) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5938:6065 function _getApproved(uint256 tokenId) internal view virtual returns (address) {... */\n tag_128:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6008:6015 address */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6034:6049 _tokenApprovals */\n 0x04\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6034:6058 _tokenApprovals[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6050:6057 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6034:6058 _tokenApprovals[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6027:6058 return _tokenApprovals[tokenId] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5938:6065 function _getApproved(uint256 tokenId) internal view virtual returns (address) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/utils/Context.sol\":656:752 function _msgSender() internal view virtual returns (address) {... */\n tag_132:\n /* \"@openzeppelin/contracts/utils/Context.sol\":709:716 address */\n 0x00\n /* \"@openzeppelin/contracts/utils/Context.sol\":735:745 msg.sender */\n caller\n /* \"@openzeppelin/contracts/utils/Context.sol\":728:745 return msg.sender */\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/Context.sol\":656:752 function _msgSender() internal view virtual returns (address) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14418:14538 function _approve(address to, uint256 tokenId, address auth) internal {... */\n tag_133:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14498:14531 _approve(to, tokenId, auth, true) */\n tag_231\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14507:14509 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14511:14518 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14520:14524 auth */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14526:14530 true */\n 0x01\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14498:14506 _approve */\n tag_232\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14498:14531 _approve(to, tokenId, auth, true) */\n jump\t// in\n tag_231:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14418:14538 function _approve(address to, uint256 tokenId, address auth) internal {... */\n pop\n pop\n pop\n jump\t// out\n /* \"contracts/NFT.sol\":1449:1657 function _update(... */\n tag_140:\n /* \"contracts/NFT.sol\":1592:1599 address */\n 0x00\n /* \"contracts/NFT.sol\":1618:1650 super._update(to, tokenId, auth) */\n tag_234\n /* \"contracts/NFT.sol\":1632:1634 to */\n dup5\n /* \"contracts/NFT.sol\":1636:1643 tokenId */\n dup5\n /* \"contracts/NFT.sol\":1645:1649 auth */\n dup5\n /* \"contracts/NFT.sol\":1618:1631 super._update */\n tag_235\n /* \"contracts/NFT.sol\":1618:1650 super._update(to, tokenId, auth) */\n jump\t// in\n tag_234:\n /* \"contracts/NFT.sol\":1611:1650 return super._update(to, tokenId, auth) */\n swap1\n pop\n /* \"contracts/NFT.sol\":1449:1657 function _update(... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1796:1958 function _checkOwner() internal view virtual {... */\n tag_151:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1866:1878 _msgSender() */\n tag_237\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1866:1876 _msgSender */\n tag_132\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1866:1878 _msgSender() */\n jump\t// in\n tag_237:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1855:1878 owner() != _msgSender() */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1855:1862 owner() */\n tag_238\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1855:1860 owner */\n tag_89\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1855:1862 owner() */\n jump\t// in\n tag_238:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1855:1878 owner() != _msgSender() */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1851:1952 if (owner() != _msgSender()) {... */\n tag_239\n jumpi\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1928:1940 _msgSender() */\n tag_240\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1928:1938 _msgSender */\n tag_132\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1928:1940 _msgSender() */\n jump\t// in\n tag_240:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1901:1941 OwnableUnauthorizedAccount(_msgSender()) */\n mload(0x40)\n 0x118cdaa700000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_241\n swap2\n swap1\n tag_43\n jump\t// in\n tag_241:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1851:1952 if (owner() != _msgSender()) {... */\n tag_239:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":1796:1958 function _checkOwner() internal view virtual {... */\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10633:10733 function _safeMint(address to, uint256 tokenId) internal {... */\n tag_156:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10700:10726 _safeMint(to, tokenId, \"\") */\n tag_243\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10710:10712 to */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10714:10721 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10700:10726 _safeMint(to, tokenId, \"\") */\n mload(0x40)\n dup1\n 0x20\n add\n 0x40\n mstore\n dup1\n 0x00\n dup2\n mstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10700:10709 _safeMint */\n tag_244\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10700:10726 _safeMint(to, tokenId, \"\") */\n jump\t// in\n tag_243:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10633:10733 function _safeMint(address to, uint256 tokenId) internal {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335 function toString(uint256 value) internal pure returns (string memory) {... */\n tag_159:\n /* \"@openzeppelin/contracts/utils/Strings.sol\":693:706 string memory */\n 0x60\n /* \"@openzeppelin/contracts/utils/Strings.sol\":742:756 uint256 length */\n 0x00\n /* \"@openzeppelin/contracts/utils/Strings.sol\":779:780 1 */\n 0x01\n /* \"@openzeppelin/contracts/utils/Strings.sol\":759:776 Math.log10(value) */\n tag_246\n /* \"@openzeppelin/contracts/utils/Strings.sol\":770:775 value */\n dup5\n /* \"@openzeppelin/contracts/utils/Strings.sol\":759:769 Math.log10 */\n tag_247\n /* \"@openzeppelin/contracts/utils/Strings.sol\":759:776 Math.log10(value) */\n jump\t// in\n tag_246:\n /* \"@openzeppelin/contracts/utils/Strings.sol\":759:780 Math.log10(value) + 1 */\n add\n /* \"@openzeppelin/contracts/utils/Strings.sol\":742:780 uint256 length = Math.log10(value) + 1 */\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/Strings.sol\":794:814 string memory buffer */\n 0x00\n /* \"@openzeppelin/contracts/utils/Strings.sol\":828:834 length */\n dup2\n /* \"@openzeppelin/contracts/utils/Strings.sol\":817:835 new string(length) */\n 0xffffffffffffffff\n dup2\n gt\n iszero\n tag_248\n jumpi\n tag_249\n tag_250\n jump\t// in\n tag_249:\n tag_248:\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x1f\n add\n not(0x1f)\n and\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_251\n jumpi\n dup2\n 0x20\n add\n 0x01\n dup3\n mul\n dup1\n calldatasize\n dup4\n calldatacopy\n dup1\n dup3\n add\n swap2\n pop\n pop\n swap1\n pop\n tag_251:\n pop\n /* \"@openzeppelin/contracts/utils/Strings.sol\":794:835 string memory buffer = new string(length) */\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/Strings.sol\":849:860 uint256 ptr */\n 0x00\n /* \"@openzeppelin/contracts/utils/Strings.sol\":975:981 length */\n dup3\n /* \"@openzeppelin/contracts/utils/Strings.sol\":971:973 32 */\n 0x20\n /* \"@openzeppelin/contracts/utils/Strings.sol\":967:982 add(32, length) */\n add\n /* \"@openzeppelin/contracts/utils/Strings.sol\":959:965 buffer */\n dup3\n /* \"@openzeppelin/contracts/utils/Strings.sol\":955:983 add(buffer, add(32, length)) */\n add\n /* \"@openzeppelin/contracts/utils/Strings.sol\":948:983 ptr := add(buffer, add(32, length)) */\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292 while (true) {... */\n tag_252:\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1017:1021 true */\n 0x01\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292 while (true) {... */\n iszero\n tag_253\n jumpi\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1041:1046 ptr-- */\n dup1\n dup1\n 0x01\n swap1\n sub\n swap2\n pop\n pop\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1180:1190 HEX_DIGITS */\n 0x3031323334353637383961626364656600000000000000000000000000000000\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1175:1177 10 */\n 0x0a\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1168:1173 value */\n dup7\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1164:1178 mod(value, 10) */\n mod\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1159:1191 byte(mod(value, 10), HEX_DIGITS) */\n byte\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1154:1157 ptr */\n dup2\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1146:1192 mstore8(ptr, byte(mod(value, 10), HEX_DIGITS)) */\n mstore8\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1236:1238 10 */\n 0x0a\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1227:1238 value /= 10 */\n dup6\n dup2\n tag_254\n jumpi\n tag_255\n tag_256\n jump\t// in\n tag_255:\n tag_254:\n div\n swap5\n pop\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1269:1270 0 */\n 0x00\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1260:1265 value */\n dup6\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1260:1270 value == 0 */\n sub\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292 while (true) {... */\n tag_252\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1256:1277 if (value == 0) break */\n jumpi\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292 while (true) {... */\n tag_253:\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1312:1318 buffer */\n dup2\n /* \"@openzeppelin/contracts/utils/Strings.sol\":1305:1318 return buffer */\n swap4\n pop\n pop\n pop\n pop\n /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335 function toString(uint256 value) internal pure returns (string memory) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1922:2089 function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {... */\n tag_162:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2035:2044 _tokenURI */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2013:2023 _tokenURIs */\n 0x0a\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2013:2032 _tokenURIs[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2024:2031 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2013:2032 _tokenURIs[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2013:2044 _tokenURIs[tokenId] = _tokenURI */\n swap1\n dup2\n tag_259\n swap2\n swap1\n tag_177\n jump\t// in\n tag_259:\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2059:2082 MetadataUpdate(tokenId) */\n 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2074:2081 tokenId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":2059:2082 MetadataUpdate(tokenId) */\n mload(0x40)\n tag_260\n swap2\n swap1\n tag_51\n jump\t// in\n tag_260:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":1922:2089 function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2912:3099 function _transferOwnership(address newOwner) internal virtual {... */\n tag_188:\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2985:3001 address oldOwner */\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3004:3010 _owner */\n 0x0b\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2985:3010 address oldOwner = _owner */\n swap1\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3029:3037 newOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3020:3026 _owner */\n 0x0b\n 0x00\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3020:3037 _owner = newOwner */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3083:3091 newOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092 OwnershipTransferred(oldOwner, newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3073:3081 oldOwner */\n dup2\n /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092 OwnershipTransferred(oldOwner, newOwner) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2975:3099 {... */\n pop\n /* \"@openzeppelin/contracts/access/Ownable.sol\":2912:3099 function _transferOwnership(address newOwner) internal virtual {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15591:15903 function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {... */\n tag_199:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15718:15719 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15698:15720 operator == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15698:15706 operator */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15698:15720 operator == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15694:15785 if (operator == address(0)) {... */\n tag_263\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15765:15773 operator */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15743:15774 ERC721InvalidOperator(operator) */\n mload(0x40)\n 0x5b08ba1800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_264\n swap2\n swap1\n tag_43\n jump\t// in\n tag_264:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15694:15785 if (operator == address(0)) {... */\n tag_263:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15832:15840 approved */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15794:15812 _operatorApprovals */\n 0x05\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15794:15819 _operatorApprovals[owner] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15813:15818 owner */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15794:15819 _operatorApprovals[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15794:15829 _operatorApprovals[owner][operator] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15820:15828 operator */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15794:15829 _operatorApprovals[owner][operator] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15794:15840 _operatorApprovals[owner][operator] = approved */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15877:15885 operator */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15855:15896 ApprovalForAll(owner, operator, approved) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15870:15875 owner */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15855:15896 ApprovalForAll(owner, operator, approved) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15887:15895 approved */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15855:15896 ApprovalForAll(owner, operator, approved) */\n mload(0x40)\n tag_265\n swap2\n swap1\n tag_33\n jump\t// in\n tag_265:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15591:15903 function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16918:17700 function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {... */\n tag_203:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17051:17052 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17036 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17048 to.code.length */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n extcodesize\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17052 to.code.length > 0 */\n gt\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17030:17694 if (to.code.length > 0) {... */\n iszero\n tag_267\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17088:17090 to */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17072:17108 IERC721Receiver(to).onERC721Received */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x150b7a02\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17109:17121 _msgSender() */\n tag_268\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17109:17119 _msgSender */\n tag_132\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17109:17121 _msgSender() */\n jump\t// in\n tag_268:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17123:17127 from */\n dup7\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17129:17136 tokenId */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17138:17142 data */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17072:17143 IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_269\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_270\n jump\t// in\n tag_269:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n swap3\n pop\n pop\n pop\n dup1\n iszero\n tag_271\n jumpi\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_272\n swap2\n swap1\n tag_273\n jump\t// in\n tag_272:\n 0x01\n tag_271:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17068:17684 try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {... */\n tag_274\n jumpi\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_279\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_278)\n tag_279:\n 0x60\n swap2\n pop\n tag_278:\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17398:17399 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17381:17387 reason */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17381:17394 reason.length */\n mload\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17381:17399 reason.length == 0 */\n sub\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17377:17670 if (reason.length == 0) {... */\n tag_280\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17452:17454 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17430:17455 ERC721InvalidReceiver(to) */\n mload(0x40)\n 0x64a0ae9200000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_281\n swap2\n swap1\n tag_43\n jump\t// in\n tag_281:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17377:17670 if (reason.length == 0) {... */\n tag_280:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17622:17628 reason */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17616:17629 mload(reason) */\n mload\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17607:17613 reason */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17603:17605 32 */\n 0x20\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17599:17614 add(32, reason) */\n add\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17592:17630 revert(add(32, reason), mload(reason)) */\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17068:17684 try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {... */\n tag_274:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17200:17241 IERC721Receiver.onERC721Received.selector */\n shl(0xe0, 0x150b7a02)\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17190:17241 retval != IERC721Receiver.onERC721Received.selector */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17190:17196 retval */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17190:17241 retval != IERC721Receiver.onERC721Received.selector */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17186:17316 if (retval != IERC721Receiver.onERC721Received.selector) {... */\n tag_284\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17294:17296 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17272:17297 ERC721InvalidReceiver(to) */\n mload(0x40)\n 0x64a0ae9200000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_285\n swap2\n swap1\n tag_43\n jump\t// in\n tag_285:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17186:17316 if (retval != IERC721Receiver.onERC721Received.selector) {... */\n tag_284:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17144:17330 returns (bytes4 retval) {... */\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17030:17694 if (to.code.length > 0) {... */\n tag_267:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16918:17700 function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {... */\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"contracts/NFT.sol\":1151:1266 function _baseURI() internal view virtual override returns (string memory) {... */\n tag_206:\n /* \"contracts/NFT.sol\":1211:1224 string memory */\n 0x60\n /* \"contracts/NFT.sol\":1243:1259 _baseURIExtended */\n 0x0d\n /* \"contracts/NFT.sol\":1236:1259 return _baseURIExtended */\n dup1\n sload\n tag_287\n swap1\n tag_119\n jump\t// in\n tag_287:\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n tag_288\n swap1\n tag_119\n jump\t// in\n tag_288:\n dup1\n iszero\n tag_289\n jumpi\n dup1\n 0x1f\n lt\n tag_290\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_289)\n tag_290:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_291:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_291\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_289:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"contracts/NFT.sol\":1151:1266 function _baseURI() internal view virtual override returns (string memory) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1435:1657 function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {... */\n tag_222:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1537:1541 bool */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1575:1610 type(IERC721Enumerable).interfaceId */\n 0x780e9d6300000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1560:1610 interfaceId == type(IERC721Enumerable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1560:1571 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1560:1610 interfaceId == type(IERC721Enumerable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1560:1650 interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId) */\n dup1\n tag_293\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1614:1650 super.supportsInterface(interfaceId) */\n tag_294\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1638:1649 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1614:1637 super.supportsInterface */\n tag_295\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1614:1650 super.supportsInterface(interfaceId) */\n jump\t// in\n tag_294:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1560:1650 interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId) */\n tag_293:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1553:1650 return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":1435:1657 function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5707:5822 function _ownerOf(uint256 tokenId) internal view virtual returns (address) {... */\n tag_225:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5773:5780 address */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5799:5806 _owners */\n 0x02\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5799:5815 _owners[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5807:5814 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5799:5815 _owners[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5792:5815 return _owners[tokenId] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5707:5822 function _ownerOf(uint256 tokenId) internal view virtual returns (address) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14720:15382 function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {... */\n tag_232:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14880:14889 emitEvent */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14880:14911 emitEvent || auth != address(0) */\n dup1\n tag_298\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14909:14910 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14893:14911 auth != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14893:14897 auth */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14893:14911 auth != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14880:14911 emitEvent || auth != address(0) */\n tag_298:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14876:15336 if (emitEvent || auth != address(0)) {... */\n iszero\n tag_299\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14927:14940 address owner */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14943:14965 _requireOwned(tokenId) */\n tag_300\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14957:14964 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14943:14956 _requireOwned */\n tag_126\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14943:14965 _requireOwned(tokenId) */\n jump\t// in\n tag_300:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14927:14965 address owner = _requireOwned(tokenId) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15109:15110 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15111 auth != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15097 auth */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15111 auth != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15128 auth != address(0) && owner != auth */\n dup1\n iszero\n tag_301\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15124:15128 auth */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15115:15128 owner != auth */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15115:15120 owner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15115:15128 owner != auth */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15128 auth != address(0) && owner != auth */\n tag_301:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15162 auth != address(0) && owner != auth && !isApprovedForAll(owner, auth) */\n dup1\n iszero\n tag_302\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15133:15162 isApprovedForAll(owner, auth) */\n tag_303\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15150:15155 owner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15157:15161 auth */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15133:15149 isApprovedForAll */\n tag_109\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15133:15162 isApprovedForAll(owner, auth) */\n jump\t// in\n tag_303:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15132:15162 !isApprovedForAll(owner, auth) */\n iszero\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15162 auth != address(0) && owner != auth && !isApprovedForAll(owner, auth) */\n tag_302:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15089:15231 if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {... */\n iszero\n tag_304\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15211:15215 auth */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15189:15216 ERC721InvalidApprover(auth) */\n mload(0x40)\n 0xa9fbf51f00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_305\n swap2\n swap1\n tag_43\n jump\t// in\n tag_305:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15089:15231 if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {... */\n tag_304:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15249:15258 emitEvent */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15245:15326 if (emitEvent) {... */\n iszero\n tag_306\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15303:15310 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15299:15301 to */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15283:15311 Approval(owner, to, tokenId) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15292:15297 owner */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15283:15311 Approval(owner, to, tokenId) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15245:15326 if (emitEvent) {... */\n tag_306:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14913:15336 {... */\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14876:15336 if (emitEvent || auth != address(0)) {... */\n tag_299:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15373:15375 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15346:15361 _tokenApprovals */\n 0x04\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15346:15370 _tokenApprovals[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15362:15369 tokenId */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15346:15370 _tokenApprovals[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15346:15375 _tokenApprovals[tokenId] = to */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14720:15382 function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {... */\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2518:3143 function _update(address to, uint256 tokenId, address auth) internal virtual override returns (address) {... */\n tag_235:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2613:2620 address */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2632:2653 address previousOwner */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2656:2688 super._update(to, tokenId, auth) */\n tag_308\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2670:2672 to */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2674:2681 tokenId */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2683:2687 auth */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2656:2669 super._update */\n tag_309\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2656:2688 super._update(to, tokenId, auth) */\n jump\t// in\n tag_308:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2632:2688 address previousOwner = super._update(to, tokenId, auth) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2728:2729 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2703:2730 previousOwner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2703:2716 previousOwner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2703:2730 previousOwner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2699:2909 if (previousOwner == address(0)) {... */\n tag_310\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2746:2786 _addTokenToAllTokensEnumeration(tokenId) */\n tag_311\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2778:2785 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2746:2777 _addTokenToAllTokensEnumeration */\n tag_312\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2746:2786 _addTokenToAllTokensEnumeration(tokenId) */\n jump\t// in\n tag_311:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2699:2909 if (previousOwner == address(0)) {... */\n jump(tag_313)\n tag_310:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2824:2826 to */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2807:2826 previousOwner != to */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2807:2820 previousOwner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2807:2826 previousOwner != to */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2803:2909 if (previousOwner != to) {... */\n tag_314\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2842:2898 _removeTokenFromOwnerEnumeration(previousOwner, tokenId) */\n tag_315\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2875:2888 previousOwner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2890:2897 tokenId */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2842:2874 _removeTokenFromOwnerEnumeration */\n tag_316\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2842:2898 _removeTokenFromOwnerEnumeration(previousOwner, tokenId) */\n jump\t// in\n tag_315:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2803:2909 if (previousOwner != to) {... */\n tag_314:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2699:2909 if (previousOwner == address(0)) {... */\n tag_313:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2936:2937 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2922:2938 to == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2922:2924 to */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2922:2938 to == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2918:3106 if (to == address(0)) {... */\n tag_317\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2954:2999 _removeTokenFromAllTokensEnumeration(tokenId) */\n tag_318\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2991:2998 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2954:2990 _removeTokenFromAllTokensEnumeration */\n tag_319\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2954:2999 _removeTokenFromAllTokensEnumeration(tokenId) */\n jump\t// in\n tag_318:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2918:3106 if (to == address(0)) {... */\n jump(tag_320)\n tag_317:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3037:3039 to */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3020:3039 previousOwner != to */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3020:3033 previousOwner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3020:3039 previousOwner != to */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3016:3106 if (previousOwner != to) {... */\n tag_321\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3055:3095 _addTokenToOwnerEnumeration(to, tokenId) */\n tag_322\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3083:3085 to */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3087:3094 tokenId */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3055:3082 _addTokenToOwnerEnumeration */\n tag_323\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3055:3095 _addTokenToOwnerEnumeration(to, tokenId) */\n jump\t// in\n tag_322:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3016:3106 if (previousOwner != to) {... */\n tag_321:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2918:3106 if (to == address(0)) {... */\n tag_320:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3123:3136 previousOwner */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3116:3136 return previousOwner */\n swap2\n pop\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":2518:3143 function _update(address to, uint256 tokenId, address auth) internal virtual override returns (address) {... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10954:11136 function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {... */\n tag_244:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11048:11066 _mint(to, tokenId) */\n tag_325\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11054:11056 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11058:11065 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11048:11053 _mint */\n tag_326\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11048:11066 _mint(to, tokenId) */\n jump\t// in\n tag_325:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11076:11129 _checkOnERC721Received(address(0), to, tokenId, data) */\n tag_327\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11107:11108 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11111:11113 to */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11115:11122 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11124:11128 data */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11076:11098 _checkOnERC721Received */\n tag_203\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":11076:11129 _checkOnERC721Received(address(0), to, tokenId, data) */\n jump\t// in\n tag_327:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10954:11136 function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12214:13130 function log10(uint256 value) internal pure returns (uint256) {... */\n tag_247:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12267:12274 uint256 */\n 0x00\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12286:12300 uint256 result */\n dup1\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12303:12304 0 */\n 0x00\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12286:12304 uint256 result = 0 */\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12351:12359 10 ** 64 */\n 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12342:12347 value */\n dup4\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12342:12359 value >= 10 ** 64 */\n lt\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12338:12441 if (value >= 10 ** 64) {... */\n tag_329\n jumpi\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12388:12396 10 ** 64 */\n 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12379:12396 value /= 10 ** 64 */\n dup4\n dup2\n tag_330\n jumpi\n tag_331\n tag_256\n jump\t// in\n tag_331:\n tag_330:\n div\n swap3\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12424:12426 64 */\n 0x40\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12414:12426 result += 64 */\n dup2\n add\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12338:12441 if (value >= 10 ** 64) {... */\n tag_329:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12467:12475 10 ** 32 */\n 0x04ee2d6d415b85acef8100000000\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12458:12463 value */\n dup4\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12458:12475 value >= 10 ** 32 */\n lt\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12454:12557 if (value >= 10 ** 32) {... */\n tag_332\n jumpi\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12504:12512 10 ** 32 */\n 0x04ee2d6d415b85acef8100000000\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12495:12512 value /= 10 ** 32 */\n dup4\n dup2\n tag_333\n jumpi\n tag_334\n tag_256\n jump\t// in\n tag_334:\n tag_333:\n div\n swap3\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12540:12542 32 */\n 0x20\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12530:12542 result += 32 */\n dup2\n add\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12454:12557 if (value >= 10 ** 32) {... */\n tag_332:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12583:12591 10 ** 16 */\n 0x2386f26fc10000\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12574:12579 value */\n dup4\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12574:12591 value >= 10 ** 16 */\n lt\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12570:12673 if (value >= 10 ** 16) {... */\n tag_335\n jumpi\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12620:12628 10 ** 16 */\n 0x2386f26fc10000\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12611:12628 value /= 10 ** 16 */\n dup4\n dup2\n tag_336\n jumpi\n tag_337\n tag_256\n jump\t// in\n tag_337:\n tag_336:\n div\n swap3\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12656:12658 16 */\n 0x10\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12646:12658 result += 16 */\n dup2\n add\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12570:12673 if (value >= 10 ** 16) {... */\n tag_335:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12699:12706 10 ** 8 */\n 0x05f5e100\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12690:12695 value */\n dup4\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12690:12706 value >= 10 ** 8 */\n lt\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12686:12786 if (value >= 10 ** 8) {... */\n tag_338\n jumpi\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12735:12742 10 ** 8 */\n 0x05f5e100\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12726:12742 value /= 10 ** 8 */\n dup4\n dup2\n tag_339\n jumpi\n tag_340\n tag_256\n jump\t// in\n tag_340:\n tag_339:\n div\n swap3\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12770:12771 8 */\n 0x08\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12760:12771 result += 8 */\n dup2\n add\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12686:12786 if (value >= 10 ** 8) {... */\n tag_338:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12812:12819 10 ** 4 */\n 0x2710\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12803:12808 value */\n dup4\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12803:12819 value >= 10 ** 4 */\n lt\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12799:12899 if (value >= 10 ** 4) {... */\n tag_341\n jumpi\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12848:12855 10 ** 4 */\n 0x2710\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12839:12855 value /= 10 ** 4 */\n dup4\n dup2\n tag_342\n jumpi\n tag_343\n tag_256\n jump\t// in\n tag_343:\n tag_342:\n div\n swap3\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12883:12884 4 */\n 0x04\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12873:12884 result += 4 */\n dup2\n add\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12799:12899 if (value >= 10 ** 4) {... */\n tag_341:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12925:12932 10 ** 2 */\n 0x64\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12916:12921 value */\n dup4\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12916:12932 value >= 10 ** 2 */\n lt\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12912:13012 if (value >= 10 ** 2) {... */\n tag_344\n jumpi\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12961:12968 10 ** 2 */\n 0x64\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12952:12968 value /= 10 ** 2 */\n dup4\n dup2\n tag_345\n jumpi\n tag_346\n tag_256\n jump\t// in\n tag_346:\n tag_345:\n div\n swap3\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12996:12997 2 */\n 0x02\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12986:12997 result += 2 */\n dup2\n add\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12912:13012 if (value >= 10 ** 2) {... */\n tag_344:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13038:13045 10 ** 1 */\n 0x0a\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13029:13034 value */\n dup4\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13029:13045 value >= 10 ** 1 */\n lt\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13025:13091 if (value >= 10 ** 1) {... */\n tag_347\n jumpi\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13075:13076 1 */\n 0x01\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13065:13076 result += 1 */\n dup2\n add\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13025:13091 if (value >= 10 ** 1) {... */\n tag_347:\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13117:13123 result */\n dup1\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":13110:13123 return result */\n swap2\n pop\n pop\n /* \"@openzeppelin/contracts/utils/math/Math.sol\":12214:13130 function log10(uint256 value) internal pure returns (uint256) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1561:1861 function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {... */\n tag_295:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1663:1667 bool */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1713:1738 type(IERC721).interfaceId */\n 0x80ac58cd00000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1698:1738 interfaceId == type(IERC721).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1698:1709 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1698:1738 interfaceId == type(IERC721).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1698:1802 interfaceId == type(IERC721).interfaceId ||... */\n dup1\n tag_349\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1769:1802 type(IERC721Metadata).interfaceId */\n 0x5b5e139f00000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1754:1802 interfaceId == type(IERC721Metadata).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1754:1765 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1754:1802 interfaceId == type(IERC721Metadata).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1698:1802 interfaceId == type(IERC721).interfaceId ||... */\n tag_349:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1698:1854 interfaceId == type(IERC721).interfaceId ||... */\n dup1\n tag_350\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1818:1854 super.supportsInterface(interfaceId) */\n tag_351\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1842:1853 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1818:1841 super.supportsInterface */\n tag_352\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1818:1854 super.supportsInterface(interfaceId) */\n jump\t// in\n tag_351:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1698:1854 interfaceId == type(IERC721).interfaceId ||... */\n tag_350:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1679:1854 return... */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1561:1861 function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8838:9633 function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {... */\n tag_309:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8924:8931 address */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8943:8955 address from */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8958:8975 _ownerOf(tokenId) */\n tag_354\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8967:8974 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8958:8966 _ownerOf */\n tag_225\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8958:8975 _ownerOf(tokenId) */\n jump\t// in\n tag_354:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8943:8975 address from = _ownerOf(tokenId) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9051:9052 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9035:9053 auth != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9035:9039 auth */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9035:9053 auth != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9031:9117 if (auth != address(0)) {... */\n tag_355\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9069:9106 _checkAuthorized(from, auth, tokenId) */\n tag_356\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9086:9090 from */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9092:9096 auth */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9098:9105 tokenId */\n dup7\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9069:9085 _checkAuthorized */\n tag_357\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9069:9106 _checkAuthorized(from, auth, tokenId) */\n jump\t// in\n tag_356:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9031:9117 if (auth != address(0)) {... */\n tag_355:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9177:9178 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9179 from != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9165 from */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9179 from != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9157:9413 if (from != address(0)) {... */\n tag_358\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9277:9325 _approve(address(0), tokenId, address(0), false) */\n tag_359\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9294:9295 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9298:9305 tokenId */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9315:9316 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9319:9324 false */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9277:9285 _approve */\n tag_232\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9277:9325 _approve(address(0), tokenId, address(0), false) */\n jump\t// in\n tag_359:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9387:9388 1 */\n 0x01\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9368:9377 _balances */\n 0x03\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9368:9383 _balances[from] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9378:9382 from */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9368:9383 _balances[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9368:9388 _balances[from] -= 1 */\n dup3\n dup3\n sload\n sub\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9157:9413 if (from != address(0)) {... */\n tag_358:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9441:9442 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9427:9443 to != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9427:9429 to */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9427:9443 to != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9423:9530 if (to != address(0)) {... */\n tag_360\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9504:9505 1 */\n 0x01\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9487:9496 _balances */\n 0x03\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9487:9500 _balances[to] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9497:9499 to */\n dup8\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9487:9500 _balances[to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9487:9505 _balances[to] += 1 */\n dup3\n dup3\n sload\n add\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9423:9530 if (to != address(0)) {... */\n tag_360:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9559:9561 to */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9540:9547 _owners */\n 0x02\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9540:9556 _owners[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9548:9555 tokenId */\n dup7\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9540:9556 _owners[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9540:9561 _owners[tokenId] = to */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9596:9603 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9592:9594 to */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9577:9604 Transfer(from, to, tokenId) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9586:9590 from */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9577:9604 Transfer(from, to, tokenId) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9622:9626 from */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9615:9626 return from */\n swap2\n pop\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":8838:9633 function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3846:4007 function _addTokenToAllTokensEnumeration(uint256 tokenId) private {... */\n tag_312:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3949:3959 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3949:3966 _allTokens.length */\n dup1\n sload\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3922:3937 _allTokensIndex */\n 0x09\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3922:3946 _allTokensIndex[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3938:3945 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3922:3946 _allTokensIndex[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3922:3966 _allTokensIndex[tokenId] = _allTokens.length */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3976:3986 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3992:3999 tokenId */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3976:4000 _allTokens.push(tokenId) */\n swap1\n dup1\n 0x01\n dup2\n sload\n add\n dup1\n dup3\n sstore\n dup1\n swap2\n pop\n pop\n 0x01\n swap1\n sub\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n swap2\n swap1\n swap2\n swap1\n swap2\n pop\n sstore\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3846:4007 function _addTokenToAllTokensEnumeration(uint256 tokenId) private {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4624:5583 function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {... */\n tag_316:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4886:4908 uint256 lastTokenIndex */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4911:4926 balanceOf(from) */\n tag_364\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4921:4925 from */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4911:4920 balanceOf */\n tag_84\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4911:4926 balanceOf(from) */\n jump\t// in\n tag_364:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4886:4926 uint256 lastTokenIndex = balanceOf(from) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4936:4954 uint256 tokenIndex */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4957:4974 _ownedTokensIndex */\n 0x07\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4957:4983 _ownedTokensIndex[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4975:4982 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4957:4983 _ownedTokensIndex[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4936:4983 uint256 tokenIndex = _ownedTokensIndex[tokenId] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5101:5115 lastTokenIndex */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5087:5097 tokenIndex */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5087:5115 tokenIndex != lastTokenIndex */\n eq\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5083:5406 if (tokenIndex != lastTokenIndex) {... */\n tag_365\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5131:5150 uint256 lastTokenId */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5153:5165 _ownedTokens */\n 0x06\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5153:5171 _ownedTokens[from] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5166:5170 from */\n dup7\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5153:5171 _ownedTokens[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5153:5187 _ownedTokens[from][lastTokenIndex] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5172:5186 lastTokenIndex */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5153:5187 _ownedTokens[from][lastTokenIndex] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5131:5187 uint256 lastTokenId = _ownedTokens[from][lastTokenIndex] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5235:5246 lastTokenId */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5202:5214 _ownedTokens */\n 0x06\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5202:5220 _ownedTokens[from] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5215:5219 from */\n dup8\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5202:5220 _ownedTokens[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5202:5232 _ownedTokens[from][tokenIndex] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5221:5231 tokenIndex */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5202:5232 _ownedTokens[from][tokenIndex] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5202:5246 _ownedTokens[from][tokenIndex] = lastTokenId */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5351:5361 tokenIndex */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5318:5335 _ownedTokensIndex */\n 0x07\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5318:5348 _ownedTokensIndex[lastTokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5336:5347 lastTokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5318:5348 _ownedTokensIndex[lastTokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5318:5361 _ownedTokensIndex[lastTokenId] = tokenIndex */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5117:5406 {... */\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5083:5406 if (tokenIndex != lastTokenIndex) {... */\n tag_365:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5499:5516 _ownedTokensIndex */\n 0x07\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5499:5525 _ownedTokensIndex[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5517:5524 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5499:5525 _ownedTokensIndex[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5492:5525 delete _ownedTokensIndex[tokenId] */\n 0x00\n swap1\n sstore\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5542:5554 _ownedTokens */\n 0x06\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5542:5560 _ownedTokens[from] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5555:5559 from */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5542:5560 _ownedTokens[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5542:5576 _ownedTokens[from][lastTokenIndex] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5561:5575 lastTokenIndex */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5542:5576 _ownedTokens[from][lastTokenIndex] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5535:5576 delete _ownedTokens[from][lastTokenIndex] */\n 0x00\n swap1\n sstore\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4705:5583 {... */\n pop\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":4624:5583 function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5871:6932 function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {... */\n tag_319:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6120:6142 uint256 lastTokenIndex */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6165:6166 1 */\n 0x01\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6145:6155 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6145:6162 _allTokens.length */\n dup1\n sload\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6145:6166 _allTokens.length - 1 */\n tag_367\n swap2\n swap1\n tag_368\n jump\t// in\n tag_367:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6120:6166 uint256 lastTokenIndex = _allTokens.length - 1 */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6176:6194 uint256 tokenIndex */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6197:6212 _allTokensIndex */\n 0x09\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6197:6221 _allTokensIndex[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6213:6220 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6197:6221 _allTokensIndex[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6176:6221 uint256 tokenIndex = _allTokensIndex[tokenId] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6543:6562 uint256 lastTokenId */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6565:6575 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6576:6590 lastTokenIndex */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6565:6591 _allTokens[lastTokenIndex] */\n dup2\n sload\n dup2\n lt\n tag_369\n jumpi\n tag_370\n tag_171\n jump\t// in\n tag_370:\n tag_369:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n sload\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6543:6591 uint256 lastTokenId = _allTokens[lastTokenIndex] */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6627:6638 lastTokenId */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6602:6612 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6613:6623 tokenIndex */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6602:6624 _allTokens[tokenIndex] */\n dup2\n sload\n dup2\n lt\n tag_372\n jumpi\n tag_373\n tag_171\n jump\t// in\n tag_373:\n tag_372:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6602:6638 _allTokens[tokenIndex] = lastTokenId */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6737:6747 tokenIndex */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6706:6721 _allTokensIndex */\n 0x09\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6706:6734 _allTokensIndex[lastTokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6722:6733 lastTokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6706:6734 _allTokensIndex[lastTokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6706:6747 _allTokensIndex[lastTokenId] = tokenIndex */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6875:6890 _allTokensIndex */\n 0x09\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6875:6899 _allTokensIndex[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6891:6898 tokenId */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6875:6899 _allTokensIndex[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6868:6899 delete _allTokensIndex[tokenId] */\n 0x00\n swap1\n sstore\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6909:6919 _allTokens */\n 0x08\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":6909:6925 _allTokens.pop() */\n dup1\n sload\n dup1\n tag_375\n jumpi\n tag_376\n tag_377\n jump\t// in\n tag_376:\n tag_375:\n 0x01\n swap1\n sub\n dup2\n dup2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n sstore\n swap1\n sstore\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5942:6932 {... */\n pop\n pop\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":5871:6932 function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3437:3651 function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {... */\n tag_323:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3521:3535 uint256 length */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3554:3555 1 */\n 0x01\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3538:3551 balanceOf(to) */\n tag_380\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3548:3550 to */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3538:3547 balanceOf */\n tag_84\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3538:3551 balanceOf(to) */\n jump\t// in\n tag_380:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3538:3555 balanceOf(to) - 1 */\n tag_381\n swap2\n swap1\n tag_368\n jump\t// in\n tag_381:\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3521:3555 uint256 length = balanceOf(to) - 1 */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3592:3599 tokenId */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3565:3577 _ownedTokens */\n 0x06\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3565:3581 _ownedTokens[to] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3578:3580 to */\n dup6\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3565:3581 _ownedTokens[to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3565:3589 _ownedTokens[to][length] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3582:3588 length */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3565:3589 _ownedTokens[to][length] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3565:3599 _ownedTokens[to][length] = tokenId */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3638:3644 length */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3609:3626 _ownedTokensIndex */\n 0x07\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3609:3635 _ownedTokensIndex[tokenId] */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3627:3634 tokenId */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3609:3635 _ownedTokensIndex[tokenId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3609:3644 _ownedTokensIndex[tokenId] = length */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3511:3651 {... */\n pop\n /* \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":3437:3651 function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9955:10282 function _mint(address to, uint256 tokenId) internal {... */\n tag_326:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10036:10037 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10022:10038 to == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10022:10024 to */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10022:10038 to == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10018:10105 if (to == address(0)) {... */\n tag_383\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10091:10092 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10061:10094 ERC721InvalidReceiver(address(0)) */\n mload(0x40)\n 0x64a0ae9200000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_384\n swap2\n swap1\n tag_43\n jump\t// in\n tag_384:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10018:10105 if (to == address(0)) {... */\n tag_383:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10114:10135 address previousOwner */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10138:10170 _update(to, tokenId, address(0)) */\n tag_385\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10146:10148 to */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10150:10157 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10167:10168 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10138:10145 _update */\n tag_140\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10138:10170 _update(to, tokenId, address(0)) */\n jump\t// in\n tag_385:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10114:10170 address previousOwner = _update(to, tokenId, address(0)) */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10209:10210 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10184:10211 previousOwner != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10184:10197 previousOwner */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10184:10211 previousOwner != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10180:10276 if (previousOwner != address(0)) {... */\n tag_386\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10262:10263 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10234:10265 ERC721InvalidSender(address(0)) */\n mload(0x40)\n 0x73c6ac6e00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_387\n swap2\n swap1\n tag_43\n jump\t// in\n tag_387:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10180:10276 if (previousOwner != address(0)) {... */\n tag_386:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10008:10282 {... */\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9955:10282 function _mint(address to, uint256 tokenId) internal {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":762:908 function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {... */\n tag_352:\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":838:842 bool */\n 0x00\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":876:901 type(IERC165).interfaceId */\n 0x01ffc9a700000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":861:901 interfaceId == type(IERC165).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":861:872 interfaceId */\n dup3\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":861:901 interfaceId == type(IERC165).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":854:901 return interfaceId == type(IERC165).interfaceId */\n swap1\n pop\n /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":762:908 function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7082:7450 function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {... */\n tag_357:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7194:7232 _isAuthorized(owner, spender, tokenId) */\n tag_390\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7208:7213 owner */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7215:7222 spender */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7224:7231 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7194:7207 _isAuthorized */\n tag_391\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7194:7232 _isAuthorized(owner, spender, tokenId) */\n jump\t// in\n tag_390:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7189:7444 if (!_isAuthorized(owner, spender, tokenId)) {... */\n tag_392\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7269:7270 0 */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7252:7271 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7252:7257 owner */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7252:7271 owner == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7248:7434 if (owner == address(0)) {... */\n tag_393\n jumpi\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7321:7328 tokenId */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7298:7329 ERC721NonexistentToken(tokenId) */\n mload(0x40)\n 0x7e27328900000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_394\n swap2\n swap1\n tag_51\n jump\t// in\n tag_394:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7248:7434 if (owner == address(0)) {... */\n tag_393:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7402:7409 spender */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7411:7418 tokenId */\n dup2\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7375:7419 ERC721InsufficientApproval(spender, tokenId) */\n mload(0x40)\n 0x177e802f00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_396\n swap3\n swap2\n swap1\n tag_148\n jump\t// in\n tag_396:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7189:7444 if (!_isAuthorized(owner, spender, tokenId)) {... */\n tag_392:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7082:7450 function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6376:6648 function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {... */\n tag_391:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6479:6483 bool */\n 0x00\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6533:6534 0 */\n dup1\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6514:6535 spender != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6514:6521 spender */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6514:6535 spender != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6514:6641 spender != address(0) &&... */\n dup1\n iszero\n tag_398\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6561:6568 spender */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6552:6568 owner == spender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6552:6557 owner */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6552:6568 owner == spender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6552:6604 owner == spender || isApprovedForAll(owner, spender) */\n dup1\n tag_399\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6572:6604 isApprovedForAll(owner, spender) */\n tag_400\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6589:6594 owner */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6596:6603 spender */\n dup5\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6572:6588 isApprovedForAll */\n tag_109\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6572:6604 isApprovedForAll(owner, spender) */\n jump\t// in\n tag_400:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6552:6604 owner == spender || isApprovedForAll(owner, spender) */\n tag_399:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6552:6640 owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender */\n dup1\n tag_401\n jumpi\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6633:6640 spender */\n dup3\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6608:6640 _getApproved(tokenId) == spender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6608:6629 _getApproved(tokenId) */\n tag_402\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6621:6628 tokenId */\n dup4\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6608:6620 _getApproved */\n tag_128\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6608:6629 _getApproved(tokenId) */\n jump\t// in\n tag_402:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6608:6640 _getApproved(tokenId) == spender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6552:6640 owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender */\n tag_401:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6514:6641 spender != address(0) &&... */\n tag_398:\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6495:6641 return... */\n swap1\n pop\n /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6376:6648 function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7:82 */\n tag_403:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\n tag_404:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\n tag_405:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:483 */\n tag_406:\n /* \"#utility.yul\":370:377 */\n 0x00\n /* \"#utility.yul\":410:476 */\n 0xffffffff00000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":403:408 */\n dup3\n /* \"#utility.yul\":399:477 */\n and\n /* \"#utility.yul\":388:477 */\n swap1\n pop\n /* \"#utility.yul\":334:483 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":489:609 */\n tag_407:\n /* \"#utility.yul\":561:584 */\n tag_469\n /* \"#utility.yul\":578:583 */\n dup2\n /* \"#utility.yul\":561:584 */\n tag_406\n jump\t// in\n tag_469:\n /* \"#utility.yul\":554:559 */\n dup2\n /* \"#utility.yul\":551:585 */\n eq\n /* \"#utility.yul\":541:603 */\n tag_470\n jumpi\n /* \"#utility.yul\":599:600 */\n 0x00\n /* \"#utility.yul\":596:597 */\n dup1\n /* \"#utility.yul\":589:601 */\n revert\n /* \"#utility.yul\":541:603 */\n tag_470:\n /* \"#utility.yul\":489:609 */\n pop\n jump\t// out\n /* \"#utility.yul\":615:752 */\n tag_408:\n /* \"#utility.yul\":660:665 */\n 0x00\n /* \"#utility.yul\":698:704 */\n dup2\n /* \"#utility.yul\":685:705 */\n calldataload\n /* \"#utility.yul\":676:705 */\n swap1\n pop\n /* \"#utility.yul\":714:746 */\n tag_472\n /* \"#utility.yul\":740:745 */\n dup2\n /* \"#utility.yul\":714:746 */\n tag_407\n jump\t// in\n tag_472:\n /* \"#utility.yul\":615:752 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":758:1085 */\n tag_30:\n /* \"#utility.yul\":816:822 */\n 0x00\n /* \"#utility.yul\":865:867 */\n 0x20\n /* \"#utility.yul\":853:862 */\n dup3\n /* \"#utility.yul\":844:851 */\n dup5\n /* \"#utility.yul\":840:863 */\n sub\n /* \"#utility.yul\":836:868 */\n slt\n /* \"#utility.yul\":833:952 */\n iszero\n tag_474\n jumpi\n /* \"#utility.yul\":871:950 */\n tag_475\n tag_404\n jump\t// in\n tag_475:\n /* \"#utility.yul\":833:952 */\n tag_474:\n /* \"#utility.yul\":991:992 */\n 0x00\n /* \"#utility.yul\":1016:1068 */\n tag_476\n /* \"#utility.yul\":1060:1067 */\n dup5\n /* \"#utility.yul\":1051:1057 */\n dup3\n /* \"#utility.yul\":1040:1049 */\n dup6\n /* \"#utility.yul\":1036:1058 */\n add\n /* \"#utility.yul\":1016:1068 */\n tag_408\n jump\t// in\n tag_476:\n /* \"#utility.yul\":1006:1068 */\n swap2\n pop\n /* \"#utility.yul\":962:1078 */\n pop\n /* \"#utility.yul\":758:1085 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1091:1181 */\n tag_409:\n /* \"#utility.yul\":1125:1132 */\n 0x00\n /* \"#utility.yul\":1168:1173 */\n dup2\n /* \"#utility.yul\":1161:1174 */\n iszero\n /* \"#utility.yul\":1154:1175 */\n iszero\n /* \"#utility.yul\":1143:1175 */\n swap1\n pop\n /* \"#utility.yul\":1091:1181 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1187:1296 */\n tag_410:\n /* \"#utility.yul\":1268:1289 */\n tag_479\n /* \"#utility.yul\":1283:1288 */\n dup2\n /* \"#utility.yul\":1268:1289 */\n tag_409\n jump\t// in\n tag_479:\n /* \"#utility.yul\":1263:1266 */\n dup3\n /* \"#utility.yul\":1256:1290 */\n mstore\n /* \"#utility.yul\":1187:1296 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1302:1512 */\n tag_33:\n /* \"#utility.yul\":1389:1393 */\n 0x00\n /* \"#utility.yul\":1427:1429 */\n 0x20\n /* \"#utility.yul\":1416:1425 */\n dup3\n /* \"#utility.yul\":1412:1430 */\n add\n /* \"#utility.yul\":1404:1430 */\n swap1\n pop\n /* \"#utility.yul\":1440:1505 */\n tag_481\n /* \"#utility.yul\":1502:1503 */\n 0x00\n /* \"#utility.yul\":1491:1500 */\n dup4\n /* \"#utility.yul\":1487:1504 */\n add\n /* \"#utility.yul\":1478:1484 */\n dup5\n /* \"#utility.yul\":1440:1505 */\n tag_410\n jump\t// in\n tag_481:\n /* \"#utility.yul\":1302:1512 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1518:1617 */\n tag_411:\n /* \"#utility.yul\":1570:1576 */\n 0x00\n /* \"#utility.yul\":1604:1609 */\n dup2\n /* \"#utility.yul\":1598:1610 */\n mload\n /* \"#utility.yul\":1588:1610 */\n swap1\n pop\n /* \"#utility.yul\":1518:1617 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1623:1792 */\n tag_412:\n /* \"#utility.yul\":1707:1718 */\n 0x00\n /* \"#utility.yul\":1741:1747 */\n dup3\n /* \"#utility.yul\":1736:1739 */\n dup3\n /* \"#utility.yul\":1729:1748 */\n mstore\n /* \"#utility.yul\":1781:1785 */\n 0x20\n /* \"#utility.yul\":1776:1779 */\n dup3\n /* \"#utility.yul\":1772:1786 */\n add\n /* \"#utility.yul\":1757:1786 */\n swap1\n pop\n /* \"#utility.yul\":1623:1792 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1798:2046 */\n tag_413:\n /* \"#utility.yul\":1880:1881 */\n 0x00\n /* \"#utility.yul\":1890:2003 */\n tag_485:\n /* \"#utility.yul\":1904:1910 */\n dup4\n /* \"#utility.yul\":1901:1902 */\n dup2\n /* \"#utility.yul\":1898:1911 */\n lt\n /* \"#utility.yul\":1890:2003 */\n iszero\n tag_487\n jumpi\n /* \"#utility.yul\":1989:1990 */\n dup1\n /* \"#utility.yul\":1984:1987 */\n dup3\n /* \"#utility.yul\":1980:1991 */\n add\n /* \"#utility.yul\":1974:1992 */\n mload\n /* \"#utility.yul\":1970:1971 */\n dup2\n /* \"#utility.yul\":1965:1968 */\n dup5\n /* \"#utility.yul\":1961:1972 */\n add\n /* \"#utility.yul\":1954:1993 */\n mstore\n /* \"#utility.yul\":1926:1928 */\n 0x20\n /* \"#utility.yul\":1923:1924 */\n dup2\n /* \"#utility.yul\":1919:1929 */\n add\n /* \"#utility.yul\":1914:1929 */\n swap1\n pop\n /* \"#utility.yul\":1890:2003 */\n jump(tag_485)\n tag_487:\n /* \"#utility.yul\":2037:2038 */\n 0x00\n /* \"#utility.yul\":2028:2034 */\n dup5\n /* \"#utility.yul\":2023:2026 */\n dup5\n /* \"#utility.yul\":2019:2035 */\n add\n /* \"#utility.yul\":2012:2039 */\n mstore\n /* \"#utility.yul\":1860:2046 */\n pop\n /* \"#utility.yul\":1798:2046 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2052:2154 */\n tag_414:\n /* \"#utility.yul\":2093:2099 */\n 0x00\n /* \"#utility.yul\":2144:2146 */\n 0x1f\n /* \"#utility.yul\":2140:2147 */\n not\n /* \"#utility.yul\":2135:2137 */\n 0x1f\n /* \"#utility.yul\":2128:2133 */\n dup4\n /* \"#utility.yul\":2124:2138 */\n add\n /* \"#utility.yul\":2120:2148 */\n and\n /* \"#utility.yul\":2110:2148 */\n swap1\n pop\n /* \"#utility.yul\":2052:2154 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2160:2537 */\n tag_415:\n /* \"#utility.yul\":2248:2251 */\n 0x00\n /* \"#utility.yul\":2276:2315 */\n tag_490\n /* \"#utility.yul\":2309:2314 */\n dup3\n /* \"#utility.yul\":2276:2315 */\n tag_411\n jump\t// in\n tag_490:\n /* \"#utility.yul\":2331:2402 */\n tag_491\n /* \"#utility.yul\":2395:2401 */\n dup2\n /* \"#utility.yul\":2390:2393 */\n dup6\n /* \"#utility.yul\":2331:2402 */\n tag_412\n jump\t// in\n tag_491:\n /* \"#utility.yul\":2324:2402 */\n swap4\n pop\n /* \"#utility.yul\":2411:2476 */\n tag_492\n /* \"#utility.yul\":2469:2475 */\n dup2\n /* \"#utility.yul\":2464:2467 */\n dup6\n /* \"#utility.yul\":2457:2461 */\n 0x20\n /* \"#utility.yul\":2450:2455 */\n dup7\n /* \"#utility.yul\":2446:2462 */\n add\n /* \"#utility.yul\":2411:2476 */\n tag_413\n jump\t// in\n tag_492:\n /* \"#utility.yul\":2501:2530 */\n tag_493\n /* \"#utility.yul\":2523:2529 */\n dup2\n /* \"#utility.yul\":2501:2530 */\n tag_414\n jump\t// in\n tag_493:\n /* \"#utility.yul\":2496:2499 */\n dup5\n /* \"#utility.yul\":2492:2531 */\n add\n /* \"#utility.yul\":2485:2531 */\n swap2\n pop\n /* \"#utility.yul\":2252:2537 */\n pop\n /* \"#utility.yul\":2160:2537 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2543:2856 */\n tag_37:\n /* \"#utility.yul\":2656:2660 */\n 0x00\n /* \"#utility.yul\":2694:2696 */\n 0x20\n /* \"#utility.yul\":2683:2692 */\n dup3\n /* \"#utility.yul\":2679:2697 */\n add\n /* \"#utility.yul\":2671:2697 */\n swap1\n pop\n /* \"#utility.yul\":2743:2752 */\n dup2\n /* \"#utility.yul\":2737:2741 */\n dup2\n /* \"#utility.yul\":2733:2753 */\n sub\n /* \"#utility.yul\":2729:2730 */\n 0x00\n /* \"#utility.yul\":2718:2727 */\n dup4\n /* \"#utility.yul\":2714:2731 */\n add\n /* \"#utility.yul\":2707:2754 */\n mstore\n /* \"#utility.yul\":2771:2849 */\n tag_495\n /* \"#utility.yul\":2844:2848 */\n dup2\n /* \"#utility.yul\":2835:2841 */\n dup5\n /* \"#utility.yul\":2771:2849 */\n tag_415\n jump\t// in\n tag_495:\n /* \"#utility.yul\":2763:2849 */\n swap1\n pop\n /* \"#utility.yul\":2543:2856 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2862:2939 */\n tag_416:\n /* \"#utility.yul\":2899:2906 */\n 0x00\n /* \"#utility.yul\":2928:2933 */\n dup2\n /* \"#utility.yul\":2917:2933 */\n swap1\n pop\n /* \"#utility.yul\":2862:2939 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2945:3067 */\n tag_417:\n /* \"#utility.yul\":3018:3042 */\n tag_498\n /* \"#utility.yul\":3036:3041 */\n dup2\n /* \"#utility.yul\":3018:3042 */\n tag_416\n jump\t// in\n tag_498:\n /* \"#utility.yul\":3011:3016 */\n dup2\n /* \"#utility.yul\":3008:3043 */\n eq\n /* \"#utility.yul\":2998:3061 */\n tag_499\n jumpi\n /* \"#utility.yul\":3057:3058 */\n 0x00\n /* \"#utility.yul\":3054:3055 */\n dup1\n /* \"#utility.yul\":3047:3059 */\n revert\n /* \"#utility.yul\":2998:3061 */\n tag_499:\n /* \"#utility.yul\":2945:3067 */\n pop\n jump\t// out\n /* \"#utility.yul\":3073:3212 */\n tag_418:\n /* \"#utility.yul\":3119:3124 */\n 0x00\n /* \"#utility.yul\":3157:3163 */\n dup2\n /* \"#utility.yul\":3144:3164 */\n calldataload\n /* \"#utility.yul\":3135:3164 */\n swap1\n pop\n /* \"#utility.yul\":3173:3206 */\n tag_501\n /* \"#utility.yul\":3200:3205 */\n dup2\n /* \"#utility.yul\":3173:3206 */\n tag_417\n jump\t// in\n tag_501:\n /* \"#utility.yul\":3073:3212 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3218:3547 */\n tag_40:\n /* \"#utility.yul\":3277:3283 */\n 0x00\n /* \"#utility.yul\":3326:3328 */\n 0x20\n /* \"#utility.yul\":3314:3323 */\n dup3\n /* \"#utility.yul\":3305:3312 */\n dup5\n /* \"#utility.yul\":3301:3324 */\n sub\n /* \"#utility.yul\":3297:3329 */\n slt\n /* \"#utility.yul\":3294:3413 */\n iszero\n tag_503\n jumpi\n /* \"#utility.yul\":3332:3411 */\n tag_504\n tag_404\n jump\t// in\n tag_504:\n /* \"#utility.yul\":3294:3413 */\n tag_503:\n /* \"#utility.yul\":3452:3453 */\n 0x00\n /* \"#utility.yul\":3477:3530 */\n tag_505\n /* \"#utility.yul\":3522:3529 */\n dup5\n /* \"#utility.yul\":3513:3519 */\n dup3\n /* \"#utility.yul\":3502:3511 */\n dup6\n /* \"#utility.yul\":3498:3520 */\n add\n /* \"#utility.yul\":3477:3530 */\n tag_418\n jump\t// in\n tag_505:\n /* \"#utility.yul\":3467:3530 */\n swap2\n pop\n /* \"#utility.yul\":3423:3540 */\n pop\n /* \"#utility.yul\":3218:3547 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3553:3679 */\n tag_419:\n /* \"#utility.yul\":3590:3597 */\n 0x00\n /* \"#utility.yul\":3630:3672 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":3623:3628 */\n dup3\n /* \"#utility.yul\":3619:3673 */\n and\n /* \"#utility.yul\":3608:3673 */\n swap1\n pop\n /* \"#utility.yul\":3553:3679 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3685:3781 */\n tag_420:\n /* \"#utility.yul\":3722:3729 */\n 0x00\n /* \"#utility.yul\":3751:3775 */\n tag_508\n /* \"#utility.yul\":3769:3774 */\n dup3\n /* \"#utility.yul\":3751:3775 */\n tag_419\n jump\t// in\n tag_508:\n /* \"#utility.yul\":3740:3775 */\n swap1\n pop\n /* \"#utility.yul\":3685:3781 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3787:3905 */\n tag_421:\n /* \"#utility.yul\":3874:3898 */\n tag_510\n /* \"#utility.yul\":3892:3897 */\n dup2\n /* \"#utility.yul\":3874:3898 */\n tag_420\n jump\t// in\n tag_510:\n /* \"#utility.yul\":3869:3872 */\n dup3\n /* \"#utility.yul\":3862:3899 */\n mstore\n /* \"#utility.yul\":3787:3905 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3911:4133 */\n tag_43:\n /* \"#utility.yul\":4004:4008 */\n 0x00\n /* \"#utility.yul\":4042:4044 */\n 0x20\n /* \"#utility.yul\":4031:4040 */\n dup3\n /* \"#utility.yul\":4027:4045 */\n add\n /* \"#utility.yul\":4019:4045 */\n swap1\n pop\n /* \"#utility.yul\":4055:4126 */\n tag_512\n /* \"#utility.yul\":4123:4124 */\n 0x00\n /* \"#utility.yul\":4112:4121 */\n dup4\n /* \"#utility.yul\":4108:4125 */\n add\n /* \"#utility.yul\":4099:4105 */\n dup5\n /* \"#utility.yul\":4055:4126 */\n tag_421\n jump\t// in\n tag_512:\n /* \"#utility.yul\":3911:4133 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4139:4261 */\n tag_422:\n /* \"#utility.yul\":4212:4236 */\n tag_514\n /* \"#utility.yul\":4230:4235 */\n dup2\n /* \"#utility.yul\":4212:4236 */\n tag_420\n jump\t// in\n tag_514:\n /* \"#utility.yul\":4205:4210 */\n dup2\n /* \"#utility.yul\":4202:4237 */\n eq\n /* \"#utility.yul\":4192:4255 */\n tag_515\n jumpi\n /* \"#utility.yul\":4251:4252 */\n 0x00\n /* \"#utility.yul\":4248:4249 */\n dup1\n /* \"#utility.yul\":4241:4253 */\n revert\n /* \"#utility.yul\":4192:4255 */\n tag_515:\n /* \"#utility.yul\":4139:4261 */\n pop\n jump\t// out\n /* \"#utility.yul\":4267:4406 */\n tag_423:\n /* \"#utility.yul\":4313:4318 */\n 0x00\n /* \"#utility.yul\":4351:4357 */\n dup2\n /* \"#utility.yul\":4338:4358 */\n calldataload\n /* \"#utility.yul\":4329:4358 */\n swap1\n pop\n /* \"#utility.yul\":4367:4400 */\n tag_517\n /* \"#utility.yul\":4394:4399 */\n dup2\n /* \"#utility.yul\":4367:4400 */\n tag_422\n jump\t// in\n tag_517:\n /* \"#utility.yul\":4267:4406 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4412:4886 */\n tag_46:\n /* \"#utility.yul\":4480:4486 */\n 0x00\n /* \"#utility.yul\":4488:4494 */\n dup1\n /* \"#utility.yul\":4537:4539 */\n 0x40\n /* \"#utility.yul\":4525:4534 */\n dup4\n /* \"#utility.yul\":4516:4523 */\n dup6\n /* \"#utility.yul\":4512:4535 */\n sub\n /* \"#utility.yul\":4508:4540 */\n slt\n /* \"#utility.yul\":4505:4624 */\n iszero\n tag_519\n jumpi\n /* \"#utility.yul\":4543:4622 */\n tag_520\n tag_404\n jump\t// in\n tag_520:\n /* \"#utility.yul\":4505:4624 */\n tag_519:\n /* \"#utility.yul\":4663:4664 */\n 0x00\n /* \"#utility.yul\":4688:4741 */\n tag_521\n /* \"#utility.yul\":4733:4740 */\n dup6\n /* \"#utility.yul\":4724:4730 */\n dup3\n /* \"#utility.yul\":4713:4722 */\n dup7\n /* \"#utility.yul\":4709:4731 */\n add\n /* \"#utility.yul\":4688:4741 */\n tag_423\n jump\t// in\n tag_521:\n /* \"#utility.yul\":4678:4741 */\n swap3\n pop\n /* \"#utility.yul\":4634:4751 */\n pop\n /* \"#utility.yul\":4790:4792 */\n 0x20\n /* \"#utility.yul\":4816:4869 */\n tag_522\n /* \"#utility.yul\":4861:4868 */\n dup6\n /* \"#utility.yul\":4852:4858 */\n dup3\n /* \"#utility.yul\":4841:4850 */\n dup7\n /* \"#utility.yul\":4837:4859 */\n add\n /* \"#utility.yul\":4816:4869 */\n tag_418\n jump\t// in\n tag_522:\n /* \"#utility.yul\":4806:4869 */\n swap2\n pop\n /* \"#utility.yul\":4761:4879 */\n pop\n /* \"#utility.yul\":4412:4886 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4892:5010 */\n tag_424:\n /* \"#utility.yul\":4979:5003 */\n tag_524\n /* \"#utility.yul\":4997:5002 */\n dup2\n /* \"#utility.yul\":4979:5003 */\n tag_416\n jump\t// in\n tag_524:\n /* \"#utility.yul\":4974:4977 */\n dup3\n /* \"#utility.yul\":4967:5004 */\n mstore\n /* \"#utility.yul\":4892:5010 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5016:5238 */\n tag_51:\n /* \"#utility.yul\":5109:5113 */\n 0x00\n /* \"#utility.yul\":5147:5149 */\n 0x20\n /* \"#utility.yul\":5136:5145 */\n dup3\n /* \"#utility.yul\":5132:5150 */\n add\n /* \"#utility.yul\":5124:5150 */\n swap1\n pop\n /* \"#utility.yul\":5160:5231 */\n tag_526\n /* \"#utility.yul\":5228:5229 */\n 0x00\n /* \"#utility.yul\":5217:5226 */\n dup4\n /* \"#utility.yul\":5213:5230 */\n add\n /* \"#utility.yul\":5204:5210 */\n dup5\n /* \"#utility.yul\":5160:5231 */\n tag_424\n jump\t// in\n tag_526:\n /* \"#utility.yul\":5016:5238 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5244:5863 */\n tag_54:\n /* \"#utility.yul\":5321:5327 */\n 0x00\n /* \"#utility.yul\":5329:5335 */\n dup1\n /* \"#utility.yul\":5337:5343 */\n 0x00\n /* \"#utility.yul\":5386:5388 */\n 0x60\n /* \"#utility.yul\":5374:5383 */\n dup5\n /* \"#utility.yul\":5365:5372 */\n dup7\n /* \"#utility.yul\":5361:5384 */\n sub\n /* \"#utility.yul\":5357:5389 */\n slt\n /* \"#utility.yul\":5354:5473 */\n iszero\n tag_528\n jumpi\n /* \"#utility.yul\":5392:5471 */\n tag_529\n tag_404\n jump\t// in\n tag_529:\n /* \"#utility.yul\":5354:5473 */\n tag_528:\n /* \"#utility.yul\":5512:5513 */\n 0x00\n /* \"#utility.yul\":5537:5590 */\n tag_530\n /* \"#utility.yul\":5582:5589 */\n dup7\n /* \"#utility.yul\":5573:5579 */\n dup3\n /* \"#utility.yul\":5562:5571 */\n dup8\n /* \"#utility.yul\":5558:5580 */\n add\n /* \"#utility.yul\":5537:5590 */\n tag_423\n jump\t// in\n tag_530:\n /* \"#utility.yul\":5527:5590 */\n swap4\n pop\n /* \"#utility.yul\":5483:5600 */\n pop\n /* \"#utility.yul\":5639:5641 */\n 0x20\n /* \"#utility.yul\":5665:5718 */\n tag_531\n /* \"#utility.yul\":5710:5717 */\n dup7\n /* \"#utility.yul\":5701:5707 */\n dup3\n /* \"#utility.yul\":5690:5699 */\n dup8\n /* \"#utility.yul\":5686:5708 */\n add\n /* \"#utility.yul\":5665:5718 */\n tag_423\n jump\t// in\n tag_531:\n /* \"#utility.yul\":5655:5718 */\n swap3\n pop\n /* \"#utility.yul\":5610:5728 */\n pop\n /* \"#utility.yul\":5767:5769 */\n 0x40\n /* \"#utility.yul\":5793:5846 */\n tag_532\n /* \"#utility.yul\":5838:5845 */\n dup7\n /* \"#utility.yul\":5829:5835 */\n dup3\n /* \"#utility.yul\":5818:5827 */\n dup8\n /* \"#utility.yul\":5814:5836 */\n add\n /* \"#utility.yul\":5793:5846 */\n tag_418\n jump\t// in\n tag_532:\n /* \"#utility.yul\":5783:5846 */\n swap2\n pop\n /* \"#utility.yul\":5738:5856 */\n pop\n /* \"#utility.yul\":5244:5863 */\n swap3\n pop\n swap3\n pop\n swap3\n jump\t// out\n /* \"#utility.yul\":5869:6198 */\n tag_62:\n /* \"#utility.yul\":5928:5934 */\n 0x00\n /* \"#utility.yul\":5977:5979 */\n 0x20\n /* \"#utility.yul\":5965:5974 */\n dup3\n /* \"#utility.yul\":5956:5963 */\n dup5\n /* \"#utility.yul\":5952:5975 */\n sub\n /* \"#utility.yul\":5948:5980 */\n slt\n /* \"#utility.yul\":5945:6064 */\n iszero\n tag_534\n jumpi\n /* \"#utility.yul\":5983:6062 */\n tag_535\n tag_404\n jump\t// in\n tag_535:\n /* \"#utility.yul\":5945:6064 */\n tag_534:\n /* \"#utility.yul\":6103:6104 */\n 0x00\n /* \"#utility.yul\":6128:6181 */\n tag_536\n /* \"#utility.yul\":6173:6180 */\n dup5\n /* \"#utility.yul\":6164:6170 */\n dup3\n /* \"#utility.yul\":6153:6162 */\n dup6\n /* \"#utility.yul\":6149:6171 */\n add\n /* \"#utility.yul\":6128:6181 */\n tag_423\n jump\t// in\n tag_536:\n /* \"#utility.yul\":6118:6181 */\n swap2\n pop\n /* \"#utility.yul\":6074:6191 */\n pop\n /* \"#utility.yul\":5869:6198 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6204:6321 */\n tag_425:\n /* \"#utility.yul\":6313:6314 */\n 0x00\n /* \"#utility.yul\":6310:6311 */\n dup1\n /* \"#utility.yul\":6303:6315 */\n revert\n /* \"#utility.yul\":6327:6444 */\n tag_426:\n /* \"#utility.yul\":6436:6437 */\n 0x00\n /* \"#utility.yul\":6433:6434 */\n dup1\n /* \"#utility.yul\":6426:6438 */\n revert\n /* \"#utility.yul\":6450:6630 */\n tag_250:\n /* \"#utility.yul\":6498:6575 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6495:6496 */\n 0x00\n /* \"#utility.yul\":6488:6576 */\n mstore\n /* \"#utility.yul\":6595:6599 */\n 0x41\n /* \"#utility.yul\":6592:6593 */\n 0x04\n /* \"#utility.yul\":6585:6600 */\n mstore\n /* \"#utility.yul\":6619:6623 */\n 0x24\n /* \"#utility.yul\":6616:6617 */\n 0x00\n /* \"#utility.yul\":6609:6624 */\n revert\n /* \"#utility.yul\":6636:6917 */\n tag_427:\n /* \"#utility.yul\":6719:6746 */\n tag_541\n /* \"#utility.yul\":6741:6745 */\n dup3\n /* \"#utility.yul\":6719:6746 */\n tag_414\n jump\t// in\n tag_541:\n /* \"#utility.yul\":6711:6717 */\n dup2\n /* \"#utility.yul\":6707:6747 */\n add\n /* \"#utility.yul\":6849:6855 */\n dup2\n /* \"#utility.yul\":6837:6847 */\n dup2\n /* \"#utility.yul\":6834:6856 */\n lt\n /* \"#utility.yul\":6813:6831 */\n 0xffffffffffffffff\n /* \"#utility.yul\":6801:6811 */\n dup3\n /* \"#utility.yul\":6798:6832 */\n gt\n /* \"#utility.yul\":6795:6857 */\n or\n /* \"#utility.yul\":6792:6880 */\n iszero\n tag_542\n jumpi\n /* \"#utility.yul\":6860:6878 */\n tag_543\n tag_250\n jump\t// in\n tag_543:\n /* \"#utility.yul\":6792:6880 */\n tag_542:\n /* \"#utility.yul\":6900:6910 */\n dup1\n /* \"#utility.yul\":6896:6898 */\n 0x40\n /* \"#utility.yul\":6889:6911 */\n mstore\n /* \"#utility.yul\":6679:6917 */\n pop\n /* \"#utility.yul\":6636:6917 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6923:7052 */\n tag_428:\n /* \"#utility.yul\":6957:6963 */\n 0x00\n /* \"#utility.yul\":6984:7004 */\n tag_545\n tag_403\n jump\t// in\n tag_545:\n /* \"#utility.yul\":6974:7004 */\n swap1\n pop\n /* \"#utility.yul\":7013:7046 */\n tag_546\n /* \"#utility.yul\":7041:7045 */\n dup3\n /* \"#utility.yul\":7033:7039 */\n dup3\n /* \"#utility.yul\":7013:7046 */\n tag_427\n jump\t// in\n tag_546:\n /* \"#utility.yul\":6923:7052 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7058:7366 */\n tag_429:\n /* \"#utility.yul\":7120:7124 */\n 0x00\n /* \"#utility.yul\":7210:7228 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7202:7208 */\n dup3\n /* \"#utility.yul\":7199:7229 */\n gt\n /* \"#utility.yul\":7196:7252 */\n iszero\n tag_548\n jumpi\n /* \"#utility.yul\":7232:7250 */\n tag_549\n tag_250\n jump\t// in\n tag_549:\n /* \"#utility.yul\":7196:7252 */\n tag_548:\n /* \"#utility.yul\":7270:7299 */\n tag_550\n /* \"#utility.yul\":7292:7298 */\n dup3\n /* \"#utility.yul\":7270:7299 */\n tag_414\n jump\t// in\n tag_550:\n /* \"#utility.yul\":7262:7299 */\n swap1\n pop\n /* \"#utility.yul\":7354:7358 */\n 0x20\n /* \"#utility.yul\":7348:7352 */\n dup2\n /* \"#utility.yul\":7344:7359 */\n add\n /* \"#utility.yul\":7336:7359 */\n swap1\n pop\n /* \"#utility.yul\":7058:7366 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7372:7520 */\n tag_430:\n /* \"#utility.yul\":7470:7476 */\n dup3\n /* \"#utility.yul\":7465:7468 */\n dup2\n /* \"#utility.yul\":7460:7463 */\n dup4\n /* \"#utility.yul\":7447:7477 */\n calldatacopy\n /* \"#utility.yul\":7511:7512 */\n 0x00\n /* \"#utility.yul\":7502:7508 */\n dup4\n /* \"#utility.yul\":7497:7500 */\n dup4\n /* \"#utility.yul\":7493:7509 */\n add\n /* \"#utility.yul\":7486:7513 */\n mstore\n /* \"#utility.yul\":7372:7520 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7526:7951 */\n tag_431:\n /* \"#utility.yul\":7604:7609 */\n 0x00\n /* \"#utility.yul\":7629:7695 */\n tag_553\n /* \"#utility.yul\":7645:7694 */\n tag_554\n /* \"#utility.yul\":7687:7693 */\n dup5\n /* \"#utility.yul\":7645:7694 */\n tag_429\n jump\t// in\n tag_554:\n /* \"#utility.yul\":7629:7695 */\n tag_428\n jump\t// in\n tag_553:\n /* \"#utility.yul\":7620:7695 */\n swap1\n pop\n /* \"#utility.yul\":7718:7724 */\n dup3\n /* \"#utility.yul\":7711:7716 */\n dup2\n /* \"#utility.yul\":7704:7725 */\n mstore\n /* \"#utility.yul\":7756:7760 */\n 0x20\n /* \"#utility.yul\":7749:7754 */\n dup2\n /* \"#utility.yul\":7745:7761 */\n add\n /* \"#utility.yul\":7794:7797 */\n dup5\n /* \"#utility.yul\":7785:7791 */\n dup5\n /* \"#utility.yul\":7780:7783 */\n dup5\n /* \"#utility.yul\":7776:7792 */\n add\n /* \"#utility.yul\":7773:7798 */\n gt\n /* \"#utility.yul\":7770:7882 */\n iszero\n tag_555\n jumpi\n /* \"#utility.yul\":7801:7880 */\n tag_556\n tag_426\n jump\t// in\n tag_556:\n /* \"#utility.yul\":7770:7882 */\n tag_555:\n /* \"#utility.yul\":7891:7945 */\n tag_557\n /* \"#utility.yul\":7938:7944 */\n dup5\n /* \"#utility.yul\":7933:7936 */\n dup3\n /* \"#utility.yul\":7928:7931 */\n dup6\n /* \"#utility.yul\":7891:7945 */\n tag_430\n jump\t// in\n tag_557:\n /* \"#utility.yul\":7610:7951 */\n pop\n /* \"#utility.yul\":7526:7951 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7971:8311 */\n tag_432:\n /* \"#utility.yul\":8027:8032 */\n 0x00\n /* \"#utility.yul\":8076:8079 */\n dup3\n /* \"#utility.yul\":8069:8073 */\n 0x1f\n /* \"#utility.yul\":8061:8067 */\n dup4\n /* \"#utility.yul\":8057:8074 */\n add\n /* \"#utility.yul\":8053:8080 */\n slt\n /* \"#utility.yul\":8043:8165 */\n tag_559\n jumpi\n /* \"#utility.yul\":8084:8163 */\n tag_560\n tag_425\n jump\t// in\n tag_560:\n /* \"#utility.yul\":8043:8165 */\n tag_559:\n /* \"#utility.yul\":8201:8207 */\n dup2\n /* \"#utility.yul\":8188:8208 */\n calldataload\n /* \"#utility.yul\":8226:8305 */\n tag_561\n /* \"#utility.yul\":8301:8304 */\n dup5\n /* \"#utility.yul\":8293:8299 */\n dup3\n /* \"#utility.yul\":8286:8290 */\n 0x20\n /* \"#utility.yul\":8278:8284 */\n dup7\n /* \"#utility.yul\":8274:8291 */\n add\n /* \"#utility.yul\":8226:8305 */\n tag_431\n jump\t// in\n tag_561:\n /* \"#utility.yul\":8217:8305 */\n swap2\n pop\n /* \"#utility.yul\":8033:8311 */\n pop\n /* \"#utility.yul\":7971:8311 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8317:8826 */\n tag_73:\n /* \"#utility.yul\":8386:8392 */\n 0x00\n /* \"#utility.yul\":8435:8437 */\n 0x20\n /* \"#utility.yul\":8423:8432 */\n dup3\n /* \"#utility.yul\":8414:8421 */\n dup5\n /* \"#utility.yul\":8410:8433 */\n sub\n /* \"#utility.yul\":8406:8438 */\n slt\n /* \"#utility.yul\":8403:8522 */\n iszero\n tag_563\n jumpi\n /* \"#utility.yul\":8441:8520 */\n tag_564\n tag_404\n jump\t// in\n tag_564:\n /* \"#utility.yul\":8403:8522 */\n tag_563:\n /* \"#utility.yul\":8589:8590 */\n 0x00\n /* \"#utility.yul\":8578:8587 */\n dup3\n /* \"#utility.yul\":8574:8591 */\n add\n /* \"#utility.yul\":8561:8592 */\n calldataload\n /* \"#utility.yul\":8619:8637 */\n 0xffffffffffffffff\n /* \"#utility.yul\":8611:8617 */\n dup2\n /* \"#utility.yul\":8608:8638 */\n gt\n /* \"#utility.yul\":8605:8722 */\n iszero\n tag_565\n jumpi\n /* \"#utility.yul\":8641:8720 */\n tag_566\n tag_405\n jump\t// in\n tag_566:\n /* \"#utility.yul\":8605:8722 */\n tag_565:\n /* \"#utility.yul\":8746:8809 */\n tag_567\n /* \"#utility.yul\":8801:8808 */\n dup5\n /* \"#utility.yul\":8792:8798 */\n dup3\n /* \"#utility.yul\":8781:8790 */\n dup6\n /* \"#utility.yul\":8777:8799 */\n add\n /* \"#utility.yul\":8746:8809 */\n tag_432\n jump\t// in\n tag_567:\n /* \"#utility.yul\":8736:8809 */\n swap2\n pop\n /* \"#utility.yul\":8532:8819 */\n pop\n /* \"#utility.yul\":8317:8826 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8832:8948 */\n tag_433:\n /* \"#utility.yul\":8902:8923 */\n tag_569\n /* \"#utility.yul\":8917:8922 */\n dup2\n /* \"#utility.yul\":8902:8923 */\n tag_409\n jump\t// in\n tag_569:\n /* \"#utility.yul\":8895:8900 */\n dup2\n /* \"#utility.yul\":8892:8924 */\n eq\n /* \"#utility.yul\":8882:8942 */\n tag_570\n jumpi\n /* \"#utility.yul\":8938:8939 */\n 0x00\n /* \"#utility.yul\":8935:8936 */\n dup1\n /* \"#utility.yul\":8928:8940 */\n revert\n /* \"#utility.yul\":8882:8942 */\n tag_570:\n /* \"#utility.yul\":8832:8948 */\n pop\n jump\t// out\n /* \"#utility.yul\":8954:9087 */\n tag_434:\n /* \"#utility.yul\":8997:9002 */\n 0x00\n /* \"#utility.yul\":9035:9041 */\n dup2\n /* \"#utility.yul\":9022:9042 */\n calldataload\n /* \"#utility.yul\":9013:9042 */\n swap1\n pop\n /* \"#utility.yul\":9051:9081 */\n tag_572\n /* \"#utility.yul\":9075:9080 */\n dup2\n /* \"#utility.yul\":9051:9081 */\n tag_433\n jump\t// in\n tag_572:\n /* \"#utility.yul\":8954:9087 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9093:9561 */\n tag_96:\n /* \"#utility.yul\":9158:9164 */\n 0x00\n /* \"#utility.yul\":9166:9172 */\n dup1\n /* \"#utility.yul\":9215:9217 */\n 0x40\n /* \"#utility.yul\":9203:9212 */\n dup4\n /* \"#utility.yul\":9194:9201 */\n dup6\n /* \"#utility.yul\":9190:9213 */\n sub\n /* \"#utility.yul\":9186:9218 */\n slt\n /* \"#utility.yul\":9183:9302 */\n iszero\n tag_574\n jumpi\n /* \"#utility.yul\":9221:9300 */\n tag_575\n tag_404\n jump\t// in\n tag_575:\n /* \"#utility.yul\":9183:9302 */\n tag_574:\n /* \"#utility.yul\":9341:9342 */\n 0x00\n /* \"#utility.yul\":9366:9419 */\n tag_576\n /* \"#utility.yul\":9411:9418 */\n dup6\n /* \"#utility.yul\":9402:9408 */\n dup3\n /* \"#utility.yul\":9391:9400 */\n dup7\n /* \"#utility.yul\":9387:9409 */\n add\n /* \"#utility.yul\":9366:9419 */\n tag_423\n jump\t// in\n tag_576:\n /* \"#utility.yul\":9356:9419 */\n swap3\n pop\n /* \"#utility.yul\":9312:9429 */\n pop\n /* \"#utility.yul\":9468:9470 */\n 0x20\n /* \"#utility.yul\":9494:9544 */\n tag_577\n /* \"#utility.yul\":9536:9543 */\n dup6\n /* \"#utility.yul\":9527:9533 */\n dup3\n /* \"#utility.yul\":9516:9525 */\n dup7\n /* \"#utility.yul\":9512:9534 */\n add\n /* \"#utility.yul\":9494:9544 */\n tag_434\n jump\t// in\n tag_577:\n /* \"#utility.yul\":9484:9544 */\n swap2\n pop\n /* \"#utility.yul\":9439:9554 */\n pop\n /* \"#utility.yul\":9093:9561 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9567:9874 */\n tag_435:\n /* \"#utility.yul\":9628:9632 */\n 0x00\n /* \"#utility.yul\":9718:9736 */\n 0xffffffffffffffff\n /* \"#utility.yul\":9710:9716 */\n dup3\n /* \"#utility.yul\":9707:9737 */\n gt\n /* \"#utility.yul\":9704:9760 */\n iszero\n tag_579\n jumpi\n /* \"#utility.yul\":9740:9758 */\n tag_580\n tag_250\n jump\t// in\n tag_580:\n /* \"#utility.yul\":9704:9760 */\n tag_579:\n /* \"#utility.yul\":9778:9807 */\n tag_581\n /* \"#utility.yul\":9800:9806 */\n dup3\n /* \"#utility.yul\":9778:9807 */\n tag_414\n jump\t// in\n tag_581:\n /* \"#utility.yul\":9770:9807 */\n swap1\n pop\n /* \"#utility.yul\":9862:9866 */\n 0x20\n /* \"#utility.yul\":9856:9860 */\n dup2\n /* \"#utility.yul\":9852:9867 */\n add\n /* \"#utility.yul\":9844:9867 */\n swap1\n pop\n /* \"#utility.yul\":9567:9874 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9880:10303 */\n tag_436:\n /* \"#utility.yul\":9957:9962 */\n 0x00\n /* \"#utility.yul\":9982:10047 */\n tag_583\n /* \"#utility.yul\":9998:10046 */\n tag_584\n /* \"#utility.yul\":10039:10045 */\n dup5\n /* \"#utility.yul\":9998:10046 */\n tag_435\n jump\t// in\n tag_584:\n /* \"#utility.yul\":9982:10047 */\n tag_428\n jump\t// in\n tag_583:\n /* \"#utility.yul\":9973:10047 */\n swap1\n pop\n /* \"#utility.yul\":10070:10076 */\n dup3\n /* \"#utility.yul\":10063:10068 */\n dup2\n /* \"#utility.yul\":10056:10077 */\n mstore\n /* \"#utility.yul\":10108:10112 */\n 0x20\n /* \"#utility.yul\":10101:10106 */\n dup2\n /* \"#utility.yul\":10097:10113 */\n add\n /* \"#utility.yul\":10146:10149 */\n dup5\n /* \"#utility.yul\":10137:10143 */\n dup5\n /* \"#utility.yul\":10132:10135 */\n dup5\n /* \"#utility.yul\":10128:10144 */\n add\n /* \"#utility.yul\":10125:10150 */\n gt\n /* \"#utility.yul\":10122:10234 */\n iszero\n tag_585\n jumpi\n /* \"#utility.yul\":10153:10232 */\n tag_586\n tag_426\n jump\t// in\n tag_586:\n /* \"#utility.yul\":10122:10234 */\n tag_585:\n /* \"#utility.yul\":10243:10297 */\n tag_587\n /* \"#utility.yul\":10290:10296 */\n dup5\n /* \"#utility.yul\":10285:10288 */\n dup3\n /* \"#utility.yul\":10280:10283 */\n dup6\n /* \"#utility.yul\":10243:10297 */\n tag_430\n jump\t// in\n tag_587:\n /* \"#utility.yul\":9963:10303 */\n pop\n /* \"#utility.yul\":9880:10303 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10322:10660 */\n tag_437:\n /* \"#utility.yul\":10377:10382 */\n 0x00\n /* \"#utility.yul\":10426:10429 */\n dup3\n /* \"#utility.yul\":10419:10423 */\n 0x1f\n /* \"#utility.yul\":10411:10417 */\n dup4\n /* \"#utility.yul\":10407:10424 */\n add\n /* \"#utility.yul\":10403:10430 */\n slt\n /* \"#utility.yul\":10393:10515 */\n tag_589\n jumpi\n /* \"#utility.yul\":10434:10513 */\n tag_590\n tag_425\n jump\t// in\n tag_590:\n /* \"#utility.yul\":10393:10515 */\n tag_589:\n /* \"#utility.yul\":10551:10557 */\n dup2\n /* \"#utility.yul\":10538:10558 */\n calldataload\n /* \"#utility.yul\":10576:10654 */\n tag_591\n /* \"#utility.yul\":10650:10653 */\n dup5\n /* \"#utility.yul\":10642:10648 */\n dup3\n /* \"#utility.yul\":10635:10639 */\n 0x20\n /* \"#utility.yul\":10627:10633 */\n dup7\n /* \"#utility.yul\":10623:10640 */\n add\n /* \"#utility.yul\":10576:10654 */\n tag_436\n jump\t// in\n tag_591:\n /* \"#utility.yul\":10567:10654 */\n swap2\n pop\n /* \"#utility.yul\":10383:10660 */\n pop\n /* \"#utility.yul\":10322:10660 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10666:11609 */\n tag_100:\n /* \"#utility.yul\":10761:10767 */\n 0x00\n /* \"#utility.yul\":10769:10775 */\n dup1\n /* \"#utility.yul\":10777:10783 */\n 0x00\n /* \"#utility.yul\":10785:10791 */\n dup1\n /* \"#utility.yul\":10834:10837 */\n 0x80\n /* \"#utility.yul\":10822:10831 */\n dup6\n /* \"#utility.yul\":10813:10820 */\n dup8\n /* \"#utility.yul\":10809:10832 */\n sub\n /* \"#utility.yul\":10805:10838 */\n slt\n /* \"#utility.yul\":10802:10922 */\n iszero\n tag_593\n jumpi\n /* \"#utility.yul\":10841:10920 */\n tag_594\n tag_404\n jump\t// in\n tag_594:\n /* \"#utility.yul\":10802:10922 */\n tag_593:\n /* \"#utility.yul\":10961:10962 */\n 0x00\n /* \"#utility.yul\":10986:11039 */\n tag_595\n /* \"#utility.yul\":11031:11038 */\n dup8\n /* \"#utility.yul\":11022:11028 */\n dup3\n /* \"#utility.yul\":11011:11020 */\n dup9\n /* \"#utility.yul\":11007:11029 */\n add\n /* \"#utility.yul\":10986:11039 */\n tag_423\n jump\t// in\n tag_595:\n /* \"#utility.yul\":10976:11039 */\n swap5\n pop\n /* \"#utility.yul\":10932:11049 */\n pop\n /* \"#utility.yul\":11088:11090 */\n 0x20\n /* \"#utility.yul\":11114:11167 */\n tag_596\n /* \"#utility.yul\":11159:11166 */\n dup8\n /* \"#utility.yul\":11150:11156 */\n dup3\n /* \"#utility.yul\":11139:11148 */\n dup9\n /* \"#utility.yul\":11135:11157 */\n add\n /* \"#utility.yul\":11114:11167 */\n tag_423\n jump\t// in\n tag_596:\n /* \"#utility.yul\":11104:11167 */\n swap4\n pop\n /* \"#utility.yul\":11059:11177 */\n pop\n /* \"#utility.yul\":11216:11218 */\n 0x40\n /* \"#utility.yul\":11242:11295 */\n tag_597\n /* \"#utility.yul\":11287:11294 */\n dup8\n /* \"#utility.yul\":11278:11284 */\n dup3\n /* \"#utility.yul\":11267:11276 */\n dup9\n /* \"#utility.yul\":11263:11285 */\n add\n /* \"#utility.yul\":11242:11295 */\n tag_418\n jump\t// in\n tag_597:\n /* \"#utility.yul\":11232:11295 */\n swap3\n pop\n /* \"#utility.yul\":11187:11305 */\n pop\n /* \"#utility.yul\":11372:11374 */\n 0x60\n /* \"#utility.yul\":11361:11370 */\n dup6\n /* \"#utility.yul\":11357:11375 */\n add\n /* \"#utility.yul\":11344:11376 */\n calldataload\n /* \"#utility.yul\":11403:11421 */\n 0xffffffffffffffff\n /* \"#utility.yul\":11395:11401 */\n dup2\n /* \"#utility.yul\":11392:11422 */\n gt\n /* \"#utility.yul\":11389:11506 */\n iszero\n tag_598\n jumpi\n /* \"#utility.yul\":11425:11504 */\n tag_599\n tag_405\n jump\t// in\n tag_599:\n /* \"#utility.yul\":11389:11506 */\n tag_598:\n /* \"#utility.yul\":11530:11592 */\n tag_600\n /* \"#utility.yul\":11584:11591 */\n dup8\n /* \"#utility.yul\":11575:11581 */\n dup3\n /* \"#utility.yul\":11564:11573 */\n dup9\n /* \"#utility.yul\":11560:11582 */\n add\n /* \"#utility.yul\":11530:11592 */\n tag_437\n jump\t// in\n tag_600:\n /* \"#utility.yul\":11520:11592 */\n swap2\n pop\n /* \"#utility.yul\":11315:11602 */\n pop\n /* \"#utility.yul\":10666:11609 */\n swap3\n swap6\n swap2\n swap5\n pop\n swap3\n pop\n jump\t// out\n /* \"#utility.yul\":11615:12089 */\n tag_108:\n /* \"#utility.yul\":11683:11689 */\n 0x00\n /* \"#utility.yul\":11691:11697 */\n dup1\n /* \"#utility.yul\":11740:11742 */\n 0x40\n /* \"#utility.yul\":11728:11737 */\n dup4\n /* \"#utility.yul\":11719:11726 */\n dup6\n /* \"#utility.yul\":11715:11738 */\n sub\n /* \"#utility.yul\":11711:11743 */\n slt\n /* \"#utility.yul\":11708:11827 */\n iszero\n tag_602\n jumpi\n /* \"#utility.yul\":11746:11825 */\n tag_603\n tag_404\n jump\t// in\n tag_603:\n /* \"#utility.yul\":11708:11827 */\n tag_602:\n /* \"#utility.yul\":11866:11867 */\n 0x00\n /* \"#utility.yul\":11891:11944 */\n tag_604\n /* \"#utility.yul\":11936:11943 */\n dup6\n /* \"#utility.yul\":11927:11933 */\n dup3\n /* \"#utility.yul\":11916:11925 */\n dup7\n /* \"#utility.yul\":11912:11934 */\n add\n /* \"#utility.yul\":11891:11944 */\n tag_423\n jump\t// in\n tag_604:\n /* \"#utility.yul\":11881:11944 */\n swap3\n pop\n /* \"#utility.yul\":11837:11954 */\n pop\n /* \"#utility.yul\":11993:11995 */\n 0x20\n /* \"#utility.yul\":12019:12072 */\n tag_605\n /* \"#utility.yul\":12064:12071 */\n dup6\n /* \"#utility.yul\":12055:12061 */\n dup3\n /* \"#utility.yul\":12044:12053 */\n dup7\n /* \"#utility.yul\":12040:12062 */\n add\n /* \"#utility.yul\":12019:12072 */\n tag_423\n jump\t// in\n tag_605:\n /* \"#utility.yul\":12009:12072 */\n swap2\n pop\n /* \"#utility.yul\":11964:12082 */\n pop\n /* \"#utility.yul\":11615:12089 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12095:12275 */\n tag_438:\n /* \"#utility.yul\":12143:12220 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":12140:12141 */\n 0x00\n /* \"#utility.yul\":12133:12221 */\n mstore\n /* \"#utility.yul\":12240:12244 */\n 0x22\n /* \"#utility.yul\":12237:12238 */\n 0x04\n /* \"#utility.yul\":12230:12245 */\n mstore\n /* \"#utility.yul\":12264:12268 */\n 0x24\n /* \"#utility.yul\":12261:12262 */\n 0x00\n /* \"#utility.yul\":12254:12269 */\n revert\n /* \"#utility.yul\":12281:12601 */\n tag_119:\n /* \"#utility.yul\":12325:12331 */\n 0x00\n /* \"#utility.yul\":12362:12363 */\n 0x02\n /* \"#utility.yul\":12356:12360 */\n dup3\n /* \"#utility.yul\":12352:12364 */\n div\n /* \"#utility.yul\":12342:12364 */\n swap1\n pop\n /* \"#utility.yul\":12409:12410 */\n 0x01\n /* \"#utility.yul\":12403:12407 */\n dup3\n /* \"#utility.yul\":12399:12411 */\n and\n /* \"#utility.yul\":12430:12448 */\n dup1\n /* \"#utility.yul\":12420:12501 */\n tag_608\n jumpi\n /* \"#utility.yul\":12486:12490 */\n 0x7f\n /* \"#utility.yul\":12478:12484 */\n dup3\n /* \"#utility.yul\":12474:12491 */\n and\n /* \"#utility.yul\":12464:12491 */\n swap2\n pop\n /* \"#utility.yul\":12420:12501 */\n tag_608:\n /* \"#utility.yul\":12548:12550 */\n 0x20\n /* \"#utility.yul\":12540:12546 */\n dup3\n /* \"#utility.yul\":12537:12551 */\n lt\n /* \"#utility.yul\":12517:12535 */\n dup2\n /* \"#utility.yul\":12514:12552 */\n sub\n /* \"#utility.yul\":12511:12595 */\n tag_609\n jumpi\n /* \"#utility.yul\":12567:12585 */\n tag_610\n tag_438\n jump\t// in\n tag_610:\n /* \"#utility.yul\":12511:12595 */\n tag_609:\n /* \"#utility.yul\":12332:12601 */\n pop\n /* \"#utility.yul\":12281:12601 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12607:13049 */\n tag_143:\n /* \"#utility.yul\":12756:12760 */\n 0x00\n /* \"#utility.yul\":12794:12796 */\n 0x60\n /* \"#utility.yul\":12783:12792 */\n dup3\n /* \"#utility.yul\":12779:12797 */\n add\n /* \"#utility.yul\":12771:12797 */\n swap1\n pop\n /* \"#utility.yul\":12807:12878 */\n tag_612\n /* \"#utility.yul\":12875:12876 */\n 0x00\n /* \"#utility.yul\":12864:12873 */\n dup4\n /* \"#utility.yul\":12860:12877 */\n add\n /* \"#utility.yul\":12851:12857 */\n dup7\n /* \"#utility.yul\":12807:12878 */\n tag_421\n jump\t// in\n tag_612:\n /* \"#utility.yul\":12888:12960 */\n tag_613\n /* \"#utility.yul\":12956:12958 */\n 0x20\n /* \"#utility.yul\":12945:12954 */\n dup4\n /* \"#utility.yul\":12941:12959 */\n add\n /* \"#utility.yul\":12932:12938 */\n dup6\n /* \"#utility.yul\":12888:12960 */\n tag_424\n jump\t// in\n tag_613:\n /* \"#utility.yul\":12970:13042 */\n tag_614\n /* \"#utility.yul\":13038:13040 */\n 0x40\n /* \"#utility.yul\":13027:13036 */\n dup4\n /* \"#utility.yul\":13023:13041 */\n add\n /* \"#utility.yul\":13014:13020 */\n dup5\n /* \"#utility.yul\":12970:13042 */\n tag_421\n jump\t// in\n tag_614:\n /* \"#utility.yul\":12607:13049 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13055:13387 */\n tag_148:\n /* \"#utility.yul\":13176:13180 */\n 0x00\n /* \"#utility.yul\":13214:13216 */\n 0x40\n /* \"#utility.yul\":13203:13212 */\n dup3\n /* \"#utility.yul\":13199:13217 */\n add\n /* \"#utility.yul\":13191:13217 */\n swap1\n pop\n /* \"#utility.yul\":13227:13298 */\n tag_616\n /* \"#utility.yul\":13295:13296 */\n 0x00\n /* \"#utility.yul\":13284:13293 */\n dup4\n /* \"#utility.yul\":13280:13297 */\n add\n /* \"#utility.yul\":13271:13277 */\n dup6\n /* \"#utility.yul\":13227:13298 */\n tag_421\n jump\t// in\n tag_616:\n /* \"#utility.yul\":13308:13380 */\n tag_617\n /* \"#utility.yul\":13376:13378 */\n 0x20\n /* \"#utility.yul\":13365:13374 */\n dup4\n /* \"#utility.yul\":13361:13379 */\n add\n /* \"#utility.yul\":13352:13358 */\n dup5\n /* \"#utility.yul\":13308:13380 */\n tag_424\n jump\t// in\n tag_617:\n /* \"#utility.yul\":13055:13387 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13393:13573 */\n tag_439:\n /* \"#utility.yul\":13441:13518 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":13438:13439 */\n 0x00\n /* \"#utility.yul\":13431:13519 */\n mstore\n /* \"#utility.yul\":13538:13542 */\n 0x11\n /* \"#utility.yul\":13535:13536 */\n 0x04\n /* \"#utility.yul\":13528:13543 */\n mstore\n /* \"#utility.yul\":13562:13566 */\n 0x24\n /* \"#utility.yul\":13559:13560 */\n 0x00\n /* \"#utility.yul\":13552:13567 */\n revert\n /* \"#utility.yul\":13579:13812 */\n tag_154:\n /* \"#utility.yul\":13618:13621 */\n 0x00\n /* \"#utility.yul\":13641:13665 */\n tag_620\n /* \"#utility.yul\":13659:13664 */\n dup3\n /* \"#utility.yul\":13641:13665 */\n tag_416\n jump\t// in\n tag_620:\n /* \"#utility.yul\":13632:13665 */\n swap2\n pop\n /* \"#utility.yul\":13687:13753 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":13680:13685 */\n dup3\n /* \"#utility.yul\":13677:13754 */\n sub\n /* \"#utility.yul\":13674:13777 */\n tag_621\n jumpi\n /* \"#utility.yul\":13757:13775 */\n tag_622\n tag_439\n jump\t// in\n tag_622:\n /* \"#utility.yul\":13674:13777 */\n tag_621:\n /* \"#utility.yul\":13804:13805 */\n 0x01\n /* \"#utility.yul\":13797:13802 */\n dup3\n /* \"#utility.yul\":13793:13806 */\n add\n /* \"#utility.yul\":13786:13806 */\n swap1\n pop\n /* \"#utility.yul\":13579:13812 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":13818:13966 */\n tag_440:\n /* \"#utility.yul\":13920:13931 */\n 0x00\n /* \"#utility.yul\":13957:13960 */\n dup2\n /* \"#utility.yul\":13942:13960 */\n swap1\n pop\n /* \"#utility.yul\":13818:13966 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13972:14362 */\n tag_441:\n /* \"#utility.yul\":14078:14081 */\n 0x00\n /* \"#utility.yul\":14106:14145 */\n tag_625\n /* \"#utility.yul\":14139:14144 */\n dup3\n /* \"#utility.yul\":14106:14145 */\n tag_411\n jump\t// in\n tag_625:\n /* \"#utility.yul\":14161:14250 */\n tag_626\n /* \"#utility.yul\":14243:14249 */\n dup2\n /* \"#utility.yul\":14238:14241 */\n dup6\n /* \"#utility.yul\":14161:14250 */\n tag_440\n jump\t// in\n tag_626:\n /* \"#utility.yul\":14154:14250 */\n swap4\n pop\n /* \"#utility.yul\":14259:14324 */\n tag_627\n /* \"#utility.yul\":14317:14323 */\n dup2\n /* \"#utility.yul\":14312:14315 */\n dup6\n /* \"#utility.yul\":14305:14309 */\n 0x20\n /* \"#utility.yul\":14298:14303 */\n dup7\n /* \"#utility.yul\":14294:14310 */\n add\n /* \"#utility.yul\":14259:14324 */\n tag_413\n jump\t// in\n tag_627:\n /* \"#utility.yul\":14349:14355 */\n dup1\n /* \"#utility.yul\":14344:14347 */\n dup5\n /* \"#utility.yul\":14340:14356 */\n add\n /* \"#utility.yul\":14333:14356 */\n swap2\n pop\n /* \"#utility.yul\":14082:14362 */\n pop\n /* \"#utility.yul\":13972:14362 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":14368:14523 */\n tag_442:\n /* \"#utility.yul\":14508:14515 */\n 0x2e6a736f6e000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":14504:14505 */\n 0x00\n /* \"#utility.yul\":14496:14502 */\n dup3\n /* \"#utility.yul\":14492:14506 */\n add\n /* \"#utility.yul\":14485:14516 */\n mstore\n /* \"#utility.yul\":14368:14523 */\n pop\n jump\t// out\n /* \"#utility.yul\":14529:14929 */\n tag_443:\n /* \"#utility.yul\":14689:14692 */\n 0x00\n /* \"#utility.yul\":14710:14794 */\n tag_630\n /* \"#utility.yul\":14792:14793 */\n 0x05\n /* \"#utility.yul\":14787:14790 */\n dup4\n /* \"#utility.yul\":14710:14794 */\n tag_440\n jump\t// in\n tag_630:\n /* \"#utility.yul\":14703:14794 */\n swap2\n pop\n /* \"#utility.yul\":14803:14896 */\n tag_631\n /* \"#utility.yul\":14892:14895 */\n dup3\n /* \"#utility.yul\":14803:14896 */\n tag_442\n jump\t// in\n tag_631:\n /* \"#utility.yul\":14921:14922 */\n 0x05\n /* \"#utility.yul\":14916:14919 */\n dup3\n /* \"#utility.yul\":14912:14923 */\n add\n /* \"#utility.yul\":14905:14923 */\n swap1\n pop\n /* \"#utility.yul\":14529:14929 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":14935:15476 */\n tag_161:\n /* \"#utility.yul\":15168:15171 */\n 0x00\n /* \"#utility.yul\":15190:15285 */\n tag_633\n /* \"#utility.yul\":15281:15284 */\n dup3\n /* \"#utility.yul\":15272:15278 */\n dup5\n /* \"#utility.yul\":15190:15285 */\n tag_441\n jump\t// in\n tag_633:\n /* \"#utility.yul\":15183:15285 */\n swap2\n pop\n /* \"#utility.yul\":15302:15450 */\n tag_634\n /* \"#utility.yul\":15446:15449 */\n dup3\n /* \"#utility.yul\":15302:15450 */\n tag_443\n jump\t// in\n tag_634:\n /* \"#utility.yul\":15295:15450 */\n swap2\n pop\n /* \"#utility.yul\":15467:15470 */\n dup2\n /* \"#utility.yul\":15460:15470 */\n swap1\n pop\n /* \"#utility.yul\":14935:15476 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":15482:15662 */\n tag_171:\n /* \"#utility.yul\":15530:15607 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":15527:15528 */\n 0x00\n /* \"#utility.yul\":15520:15608 */\n mstore\n /* \"#utility.yul\":15627:15631 */\n 0x32\n /* \"#utility.yul\":15624:15625 */\n 0x04\n /* \"#utility.yul\":15617:15632 */\n mstore\n /* \"#utility.yul\":15651:15655 */\n 0x24\n /* \"#utility.yul\":15648:15649 */\n 0x00\n /* \"#utility.yul\":15641:15656 */\n revert\n /* \"#utility.yul\":15668:15809 */\n tag_444:\n /* \"#utility.yul\":15717:15721 */\n 0x00\n /* \"#utility.yul\":15740:15743 */\n dup2\n /* \"#utility.yul\":15732:15743 */\n swap1\n pop\n /* \"#utility.yul\":15763:15766 */\n dup2\n /* \"#utility.yul\":15760:15761 */\n 0x00\n /* \"#utility.yul\":15753:15767 */\n mstore\n /* \"#utility.yul\":15797:15801 */\n 0x20\n /* \"#utility.yul\":15794:15795 */\n 0x00\n /* \"#utility.yul\":15784:15802 */\n keccak256\n /* \"#utility.yul\":15776:15802 */\n swap1\n pop\n /* \"#utility.yul\":15668:15809 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":15815:15908 */\n tag_445:\n /* \"#utility.yul\":15852:15858 */\n 0x00\n /* \"#utility.yul\":15899:15901 */\n 0x20\n /* \"#utility.yul\":15894:15896 */\n 0x1f\n /* \"#utility.yul\":15887:15892 */\n dup4\n /* \"#utility.yul\":15883:15897 */\n add\n /* \"#utility.yul\":15879:15902 */\n div\n /* \"#utility.yul\":15869:15902 */\n swap1\n pop\n /* \"#utility.yul\":15815:15908 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":15914:16021 */\n tag_446:\n /* \"#utility.yul\":15958:15966 */\n 0x00\n /* \"#utility.yul\":16008:16013 */\n dup3\n /* \"#utility.yul\":16002:16006 */\n dup3\n /* \"#utility.yul\":15998:16014 */\n shl\n /* \"#utility.yul\":15977:16014 */\n swap1\n pop\n /* \"#utility.yul\":15914:16021 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":16027:16420 */\n tag_447:\n /* \"#utility.yul\":16096:16102 */\n 0x00\n /* \"#utility.yul\":16146:16147 */\n 0x08\n /* \"#utility.yul\":16134:16144 */\n dup4\n /* \"#utility.yul\":16130:16148 */\n mul\n /* \"#utility.yul\":16169:16266 */\n tag_640\n /* \"#utility.yul\":16199:16265 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":16188:16197 */\n dup3\n /* \"#utility.yul\":16169:16266 */\n tag_446\n jump\t// in\n tag_640:\n /* \"#utility.yul\":16287:16326 */\n tag_641\n /* \"#utility.yul\":16317:16325 */\n dup7\n /* \"#utility.yul\":16306:16315 */\n dup4\n /* \"#utility.yul\":16287:16326 */\n tag_446\n jump\t// in\n tag_641:\n /* \"#utility.yul\":16275:16326 */\n swap6\n pop\n /* \"#utility.yul\":16359:16363 */\n dup1\n /* \"#utility.yul\":16355:16364 */\n not\n /* \"#utility.yul\":16348:16353 */\n dup5\n /* \"#utility.yul\":16344:16365 */\n and\n /* \"#utility.yul\":16335:16365 */\n swap4\n pop\n /* \"#utility.yul\":16408:16412 */\n dup1\n /* \"#utility.yul\":16398:16406 */\n dup7\n /* \"#utility.yul\":16394:16413 */\n and\n /* \"#utility.yul\":16387:16392 */\n dup5\n /* \"#utility.yul\":16384:16414 */\n or\n /* \"#utility.yul\":16374:16414 */\n swap3\n pop\n /* \"#utility.yul\":16103:16420 */\n pop\n pop\n /* \"#utility.yul\":16027:16420 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":16426:16486 */\n tag_448:\n /* \"#utility.yul\":16454:16457 */\n 0x00\n /* \"#utility.yul\":16475:16480 */\n dup2\n /* \"#utility.yul\":16468:16480 */\n swap1\n pop\n /* \"#utility.yul\":16426:16486 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":16492:16634 */\n tag_449:\n /* \"#utility.yul\":16542:16551 */\n 0x00\n /* \"#utility.yul\":16575:16628 */\n tag_644\n /* \"#utility.yul\":16593:16627 */\n tag_645\n /* \"#utility.yul\":16602:16626 */\n tag_646\n /* \"#utility.yul\":16620:16625 */\n dup5\n /* \"#utility.yul\":16602:16626 */\n tag_416\n jump\t// in\n tag_646:\n /* \"#utility.yul\":16593:16627 */\n tag_448\n jump\t// in\n tag_645:\n /* \"#utility.yul\":16575:16628 */\n tag_416\n jump\t// in\n tag_644:\n /* \"#utility.yul\":16562:16628 */\n swap1\n pop\n /* \"#utility.yul\":16492:16634 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":16640:16715 */\n tag_450:\n /* \"#utility.yul\":16683:16686 */\n 0x00\n /* \"#utility.yul\":16704:16709 */\n dup2\n /* \"#utility.yul\":16697:16709 */\n swap1\n pop\n /* \"#utility.yul\":16640:16715 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":16721:16990 */\n tag_451:\n /* \"#utility.yul\":16831:16870 */\n tag_649\n /* \"#utility.yul\":16862:16869 */\n dup4\n /* \"#utility.yul\":16831:16870 */\n tag_449\n jump\t// in\n tag_649:\n /* \"#utility.yul\":16892:16983 */\n tag_650\n /* \"#utility.yul\":16941:16982 */\n tag_651\n /* \"#utility.yul\":16965:16981 */\n dup3\n /* \"#utility.yul\":16941:16982 */\n tag_450\n jump\t// in\n tag_651:\n /* \"#utility.yul\":16933:16939 */\n dup5\n /* \"#utility.yul\":16926:16930 */\n dup5\n /* \"#utility.yul\":16920:16931 */\n sload\n /* \"#utility.yul\":16892:16983 */\n tag_447\n jump\t// in\n tag_650:\n /* \"#utility.yul\":16886:16890 */\n dup3\n /* \"#utility.yul\":16879:16984 */\n sstore\n /* \"#utility.yul\":16797:16990 */\n pop\n /* \"#utility.yul\":16721:16990 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":16996:17069 */\n tag_452:\n /* \"#utility.yul\":17041:17044 */\n 0x00\n /* \"#utility.yul\":16996:17069 */\n swap1\n jump\t// out\n /* \"#utility.yul\":17075:17264 */\n tag_453:\n /* \"#utility.yul\":17152:17184 */\n tag_654\n tag_452\n jump\t// in\n tag_654:\n /* \"#utility.yul\":17193:17258 */\n tag_655\n /* \"#utility.yul\":17251:17257 */\n dup2\n /* \"#utility.yul\":17243:17249 */\n dup5\n /* \"#utility.yul\":17237:17241 */\n dup5\n /* \"#utility.yul\":17193:17258 */\n tag_451\n jump\t// in\n tag_655:\n /* \"#utility.yul\":17128:17264 */\n pop\n /* \"#utility.yul\":17075:17264 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":17270:17456 */\n tag_454:\n /* \"#utility.yul\":17330:17450 */\n tag_657:\n /* \"#utility.yul\":17347:17350 */\n dup2\n /* \"#utility.yul\":17340:17345 */\n dup2\n /* \"#utility.yul\":17337:17351 */\n lt\n /* \"#utility.yul\":17330:17450 */\n iszero\n tag_659\n jumpi\n /* \"#utility.yul\":17401:17440 */\n tag_660\n /* \"#utility.yul\":17438:17439 */\n 0x00\n /* \"#utility.yul\":17431:17436 */\n dup3\n /* \"#utility.yul\":17401:17440 */\n tag_453\n jump\t// in\n tag_660:\n /* \"#utility.yul\":17374:17375 */\n 0x01\n /* \"#utility.yul\":17367:17372 */\n dup2\n /* \"#utility.yul\":17363:17376 */\n add\n /* \"#utility.yul\":17354:17376 */\n swap1\n pop\n /* \"#utility.yul\":17330:17450 */\n jump(tag_657)\n tag_659:\n /* \"#utility.yul\":17270:17456 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":17462:18005 */\n tag_455:\n /* \"#utility.yul\":17563:17565 */\n 0x1f\n /* \"#utility.yul\":17558:17561 */\n dup3\n /* \"#utility.yul\":17555:17566 */\n gt\n /* \"#utility.yul\":17552:17998 */\n iszero\n tag_662\n jumpi\n /* \"#utility.yul\":17597:17635 */\n tag_663\n /* \"#utility.yul\":17629:17634 */\n dup2\n /* \"#utility.yul\":17597:17635 */\n tag_444\n jump\t// in\n tag_663:\n /* \"#utility.yul\":17681:17710 */\n tag_664\n /* \"#utility.yul\":17699:17709 */\n dup5\n /* \"#utility.yul\":17681:17710 */\n tag_445\n jump\t// in\n tag_664:\n /* \"#utility.yul\":17671:17679 */\n dup2\n /* \"#utility.yul\":17667:17711 */\n add\n /* \"#utility.yul\":17864:17866 */\n 0x20\n /* \"#utility.yul\":17852:17862 */\n dup6\n /* \"#utility.yul\":17849:17867 */\n lt\n /* \"#utility.yul\":17846:17895 */\n iszero\n tag_665\n jumpi\n /* \"#utility.yul\":17885:17893 */\n dup2\n /* \"#utility.yul\":17870:17893 */\n swap1\n pop\n /* \"#utility.yul\":17846:17895 */\n tag_665:\n /* \"#utility.yul\":17908:17988 */\n tag_666\n /* \"#utility.yul\":17964:17986 */\n tag_667\n /* \"#utility.yul\":17982:17985 */\n dup6\n /* \"#utility.yul\":17964:17986 */\n tag_445\n jump\t// in\n tag_667:\n /* \"#utility.yul\":17954:17962 */\n dup4\n /* \"#utility.yul\":17950:17987 */\n add\n /* \"#utility.yul\":17937:17948 */\n dup3\n /* \"#utility.yul\":17908:17988 */\n tag_454\n jump\t// in\n tag_666:\n /* \"#utility.yul\":17567:17998 */\n pop\n pop\n /* \"#utility.yul\":17552:17998 */\n tag_662:\n /* \"#utility.yul\":17462:18005 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":18011:18128 */\n tag_456:\n /* \"#utility.yul\":18065:18073 */\n 0x00\n /* \"#utility.yul\":18115:18120 */\n dup3\n /* \"#utility.yul\":18109:18113 */\n dup3\n /* \"#utility.yul\":18105:18121 */\n shr\n /* \"#utility.yul\":18084:18121 */\n swap1\n pop\n /* \"#utility.yul\":18011:18128 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":18134:18303 */\n tag_457:\n /* \"#utility.yul\":18178:18184 */\n 0x00\n /* \"#utility.yul\":18211:18262 */\n tag_670\n /* \"#utility.yul\":18259:18260 */\n 0x00\n /* \"#utility.yul\":18255:18261 */\n not\n /* \"#utility.yul\":18247:18252 */\n dup5\n /* \"#utility.yul\":18244:18245 */\n 0x08\n /* \"#utility.yul\":18240:18253 */\n mul\n /* \"#utility.yul\":18211:18262 */\n tag_456\n jump\t// in\n tag_670:\n /* \"#utility.yul\":18207:18263 */\n not\n /* \"#utility.yul\":18292:18296 */\n dup1\n /* \"#utility.yul\":18286:18290 */\n dup4\n /* \"#utility.yul\":18282:18297 */\n and\n /* \"#utility.yul\":18272:18297 */\n swap2\n pop\n /* \"#utility.yul\":18185:18303 */\n pop\n /* \"#utility.yul\":18134:18303 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":18308:18603 */\n tag_458:\n /* \"#utility.yul\":18384:18388 */\n 0x00\n /* \"#utility.yul\":18530:18559 */\n tag_672\n /* \"#utility.yul\":18555:18558 */\n dup4\n /* \"#utility.yul\":18549:18553 */\n dup4\n /* \"#utility.yul\":18530:18559 */\n tag_457\n jump\t// in\n tag_672:\n /* \"#utility.yul\":18522:18559 */\n swap2\n pop\n /* \"#utility.yul\":18592:18595 */\n dup3\n /* \"#utility.yul\":18589:18590 */\n 0x02\n /* \"#utility.yul\":18585:18596 */\n mul\n /* \"#utility.yul\":18579:18583 */\n dup3\n /* \"#utility.yul\":18576:18597 */\n or\n /* \"#utility.yul\":18568:18597 */\n swap1\n pop\n /* \"#utility.yul\":18308:18603 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":18608:20003 */\n tag_177:\n /* \"#utility.yul\":18725:18762 */\n tag_674\n /* \"#utility.yul\":18758:18761 */\n dup3\n /* \"#utility.yul\":18725:18762 */\n tag_411\n jump\t// in\n tag_674:\n /* \"#utility.yul\":18827:18845 */\n 0xffffffffffffffff\n /* \"#utility.yul\":18819:18825 */\n dup2\n /* \"#utility.yul\":18816:18846 */\n gt\n /* \"#utility.yul\":18813:18869 */\n iszero\n tag_675\n jumpi\n /* \"#utility.yul\":18849:18867 */\n tag_676\n tag_250\n jump\t// in\n tag_676:\n /* \"#utility.yul\":18813:18869 */\n tag_675:\n /* \"#utility.yul\":18893:18931 */\n tag_677\n /* \"#utility.yul\":18925:18929 */\n dup3\n /* \"#utility.yul\":18919:18930 */\n sload\n /* \"#utility.yul\":18893:18931 */\n tag_119\n jump\t// in\n tag_677:\n /* \"#utility.yul\":18978:19045 */\n tag_678\n /* \"#utility.yul\":19038:19044 */\n dup3\n /* \"#utility.yul\":19030:19036 */\n dup3\n /* \"#utility.yul\":19024:19028 */\n dup6\n /* \"#utility.yul\":18978:19045 */\n tag_455\n jump\t// in\n tag_678:\n /* \"#utility.yul\":19072:19073 */\n 0x00\n /* \"#utility.yul\":19096:19100 */\n 0x20\n /* \"#utility.yul\":19083:19100 */\n swap1\n pop\n /* \"#utility.yul\":19128:19130 */\n 0x1f\n /* \"#utility.yul\":19120:19126 */\n dup4\n /* \"#utility.yul\":19117:19131 */\n gt\n /* \"#utility.yul\":19145:19146 */\n 0x01\n /* \"#utility.yul\":19140:19758 */\n dup2\n eq\n tag_680\n jumpi\n /* \"#utility.yul\":19802:19803 */\n 0x00\n /* \"#utility.yul\":19819:19825 */\n dup5\n /* \"#utility.yul\":19816:19893 */\n iszero\n tag_681\n jumpi\n /* \"#utility.yul\":19868:19877 */\n dup3\n /* \"#utility.yul\":19863:19866 */\n dup8\n /* \"#utility.yul\":19859:19878 */\n add\n /* \"#utility.yul\":19853:19879 */\n mload\n /* \"#utility.yul\":19844:19879 */\n swap1\n pop\n /* \"#utility.yul\":19816:19893 */\n tag_681:\n /* \"#utility.yul\":19919:19986 */\n tag_682\n /* \"#utility.yul\":19979:19985 */\n dup6\n /* \"#utility.yul\":19972:19977 */\n dup3\n /* \"#utility.yul\":19919:19986 */\n tag_458\n jump\t// in\n tag_682:\n /* \"#utility.yul\":19913:19917 */\n dup7\n /* \"#utility.yul\":19906:19987 */\n sstore\n /* \"#utility.yul\":19775:19997 */\n pop\n /* \"#utility.yul\":19110:19997 */\n jump(tag_679)\n /* \"#utility.yul\":19140:19758 */\n tag_680:\n /* \"#utility.yul\":19192:19196 */\n 0x1f\n /* \"#utility.yul\":19188:19197 */\n not\n /* \"#utility.yul\":19180:19186 */\n dup5\n /* \"#utility.yul\":19176:19198 */\n and\n /* \"#utility.yul\":19226:19263 */\n tag_683\n /* \"#utility.yul\":19258:19262 */\n dup7\n /* \"#utility.yul\":19226:19263 */\n tag_444\n jump\t// in\n tag_683:\n /* \"#utility.yul\":19285:19286 */\n 0x00\n /* \"#utility.yul\":19299:19507 */\n tag_684:\n /* \"#utility.yul\":19313:19320 */\n dup3\n /* \"#utility.yul\":19310:19311 */\n dup2\n /* \"#utility.yul\":19307:19321 */\n lt\n /* \"#utility.yul\":19299:19507 */\n iszero\n tag_686\n jumpi\n /* \"#utility.yul\":19392:19401 */\n dup5\n /* \"#utility.yul\":19387:19390 */\n dup10\n /* \"#utility.yul\":19383:19402 */\n add\n /* \"#utility.yul\":19377:19403 */\n mload\n /* \"#utility.yul\":19369:19375 */\n dup3\n /* \"#utility.yul\":19362:19404 */\n sstore\n /* \"#utility.yul\":19443:19444 */\n 0x01\n /* \"#utility.yul\":19435:19441 */\n dup3\n /* \"#utility.yul\":19431:19445 */\n add\n /* \"#utility.yul\":19421:19445 */\n swap2\n pop\n /* \"#utility.yul\":19490:19492 */\n 0x20\n /* \"#utility.yul\":19479:19488 */\n dup6\n /* \"#utility.yul\":19475:19493 */\n add\n /* \"#utility.yul\":19462:19493 */\n swap5\n pop\n /* \"#utility.yul\":19336:19340 */\n 0x20\n /* \"#utility.yul\":19333:19334 */\n dup2\n /* \"#utility.yul\":19329:19341 */\n add\n /* \"#utility.yul\":19324:19341 */\n swap1\n pop\n /* \"#utility.yul\":19299:19507 */\n jump(tag_684)\n tag_686:\n /* \"#utility.yul\":19535:19541 */\n dup7\n /* \"#utility.yul\":19526:19533 */\n dup4\n /* \"#utility.yul\":19523:19542 */\n lt\n /* \"#utility.yul\":19520:19699 */\n iszero\n tag_687\n jumpi\n /* \"#utility.yul\":19593:19602 */\n dup5\n /* \"#utility.yul\":19588:19591 */\n dup10\n /* \"#utility.yul\":19584:19603 */\n add\n /* \"#utility.yul\":19578:19604 */\n mload\n /* \"#utility.yul\":19636:19684 */\n tag_688\n /* \"#utility.yul\":19678:19682 */\n 0x1f\n /* \"#utility.yul\":19670:19676 */\n dup10\n /* \"#utility.yul\":19666:19683 */\n and\n /* \"#utility.yul\":19655:19664 */\n dup3\n /* \"#utility.yul\":19636:19684 */\n tag_457\n jump\t// in\n tag_688:\n /* \"#utility.yul\":19628:19634 */\n dup4\n /* \"#utility.yul\":19621:19685 */\n sstore\n /* \"#utility.yul\":19543:19699 */\n pop\n /* \"#utility.yul\":19520:19699 */\n tag_687:\n /* \"#utility.yul\":19745:19746 */\n 0x01\n /* \"#utility.yul\":19741:19742 */\n 0x02\n /* \"#utility.yul\":19733:19739 */\n dup9\n /* \"#utility.yul\":19729:19743 */\n mul\n /* \"#utility.yul\":19725:19747 */\n add\n /* \"#utility.yul\":19719:19723 */\n dup9\n /* \"#utility.yul\":19712:19748 */\n sstore\n /* \"#utility.yul\":19147:19758 */\n pop\n pop\n pop\n /* \"#utility.yul\":19110:19997 */\n tag_679:\n pop\n /* \"#utility.yul\":18700:20003 */\n pop\n pop\n pop\n /* \"#utility.yul\":18608:20003 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":20009:20710 */\n tag_211:\n /* \"#utility.yul\":20290:20293 */\n 0x00\n /* \"#utility.yul\":20312:20407 */\n tag_690\n /* \"#utility.yul\":20403:20406 */\n dup3\n /* \"#utility.yul\":20394:20400 */\n dup6\n /* \"#utility.yul\":20312:20407 */\n tag_441\n jump\t// in\n tag_690:\n /* \"#utility.yul\":20305:20407 */\n swap2\n pop\n /* \"#utility.yul\":20424:20519 */\n tag_691\n /* \"#utility.yul\":20515:20518 */\n dup3\n /* \"#utility.yul\":20506:20512 */\n dup5\n /* \"#utility.yul\":20424:20519 */\n tag_441\n jump\t// in\n tag_691:\n /* \"#utility.yul\":20417:20519 */\n swap2\n pop\n /* \"#utility.yul\":20536:20684 */\n tag_692\n /* \"#utility.yul\":20680:20683 */\n dup3\n /* \"#utility.yul\":20536:20684 */\n tag_443\n jump\t// in\n tag_692:\n /* \"#utility.yul\":20529:20684 */\n swap2\n pop\n /* \"#utility.yul\":20701:20704 */\n dup2\n /* \"#utility.yul\":20694:20704 */\n swap1\n pop\n /* \"#utility.yul\":20009:20710 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":20716:20896 */\n tag_256:\n /* \"#utility.yul\":20764:20841 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":20761:20762 */\n 0x00\n /* \"#utility.yul\":20754:20842 */\n mstore\n /* \"#utility.yul\":20861:20865 */\n 0x12\n /* \"#utility.yul\":20858:20859 */\n 0x04\n /* \"#utility.yul\":20851:20866 */\n mstore\n /* \"#utility.yul\":20885:20889 */\n 0x24\n /* \"#utility.yul\":20882:20883 */\n 0x00\n /* \"#utility.yul\":20875:20890 */\n revert\n /* \"#utility.yul\":20902:21000 */\n tag_459:\n /* \"#utility.yul\":20953:20959 */\n 0x00\n /* \"#utility.yul\":20987:20992 */\n dup2\n /* \"#utility.yul\":20981:20993 */\n mload\n /* \"#utility.yul\":20971:20993 */\n swap1\n pop\n /* \"#utility.yul\":20902:21000 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":21006:21174 */\n tag_460:\n /* \"#utility.yul\":21089:21100 */\n 0x00\n /* \"#utility.yul\":21123:21129 */\n dup3\n /* \"#utility.yul\":21118:21121 */\n dup3\n /* \"#utility.yul\":21111:21130 */\n mstore\n /* \"#utility.yul\":21163:21167 */\n 0x20\n /* \"#utility.yul\":21158:21161 */\n dup3\n /* \"#utility.yul\":21154:21168 */\n add\n /* \"#utility.yul\":21139:21168 */\n swap1\n pop\n /* \"#utility.yul\":21006:21174 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":21180:21553 */\n tag_461:\n /* \"#utility.yul\":21266:21269 */\n 0x00\n /* \"#utility.yul\":21294:21332 */\n tag_697\n /* \"#utility.yul\":21326:21331 */\n dup3\n /* \"#utility.yul\":21294:21332 */\n tag_459\n jump\t// in\n tag_697:\n /* \"#utility.yul\":21348:21418 */\n tag_698\n /* \"#utility.yul\":21411:21417 */\n dup2\n /* \"#utility.yul\":21406:21409 */\n dup6\n /* \"#utility.yul\":21348:21418 */\n tag_460\n jump\t// in\n tag_698:\n /* \"#utility.yul\":21341:21418 */\n swap4\n pop\n /* \"#utility.yul\":21427:21492 */\n tag_699\n /* \"#utility.yul\":21485:21491 */\n dup2\n /* \"#utility.yul\":21480:21483 */\n dup6\n /* \"#utility.yul\":21473:21477 */\n 0x20\n /* \"#utility.yul\":21466:21471 */\n dup7\n /* \"#utility.yul\":21462:21478 */\n add\n /* \"#utility.yul\":21427:21492 */\n tag_413\n jump\t// in\n tag_699:\n /* \"#utility.yul\":21517:21546 */\n tag_700\n /* \"#utility.yul\":21539:21545 */\n dup2\n /* \"#utility.yul\":21517:21546 */\n tag_414\n jump\t// in\n tag_700:\n /* \"#utility.yul\":21512:21515 */\n dup5\n /* \"#utility.yul\":21508:21547 */\n add\n /* \"#utility.yul\":21501:21547 */\n swap2\n pop\n /* \"#utility.yul\":21270:21553 */\n pop\n /* \"#utility.yul\":21180:21553 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":21559:22199 */\n tag_270:\n /* \"#utility.yul\":21754:21758 */\n 0x00\n /* \"#utility.yul\":21792:21795 */\n 0x80\n /* \"#utility.yul\":21781:21790 */\n dup3\n /* \"#utility.yul\":21777:21796 */\n add\n /* \"#utility.yul\":21769:21796 */\n swap1\n pop\n /* \"#utility.yul\":21806:21877 */\n tag_702\n /* \"#utility.yul\":21874:21875 */\n 0x00\n /* \"#utility.yul\":21863:21872 */\n dup4\n /* \"#utility.yul\":21859:21876 */\n add\n /* \"#utility.yul\":21850:21856 */\n dup8\n /* \"#utility.yul\":21806:21877 */\n tag_421\n jump\t// in\n tag_702:\n /* \"#utility.yul\":21887:21959 */\n tag_703\n /* \"#utility.yul\":21955:21957 */\n 0x20\n /* \"#utility.yul\":21944:21953 */\n dup4\n /* \"#utility.yul\":21940:21958 */\n add\n /* \"#utility.yul\":21931:21937 */\n dup7\n /* \"#utility.yul\":21887:21959 */\n tag_421\n jump\t// in\n tag_703:\n /* \"#utility.yul\":21969:22041 */\n tag_704\n /* \"#utility.yul\":22037:22039 */\n 0x40\n /* \"#utility.yul\":22026:22035 */\n dup4\n /* \"#utility.yul\":22022:22040 */\n add\n /* \"#utility.yul\":22013:22019 */\n dup6\n /* \"#utility.yul\":21969:22041 */\n tag_424\n jump\t// in\n tag_704:\n /* \"#utility.yul\":22088:22097 */\n dup2\n /* \"#utility.yul\":22082:22086 */\n dup2\n /* \"#utility.yul\":22078:22098 */\n sub\n /* \"#utility.yul\":22073:22075 */\n 0x60\n /* \"#utility.yul\":22062:22071 */\n dup4\n /* \"#utility.yul\":22058:22076 */\n add\n /* \"#utility.yul\":22051:22099 */\n mstore\n /* \"#utility.yul\":22116:22192 */\n tag_705\n /* \"#utility.yul\":22187:22191 */\n dup2\n /* \"#utility.yul\":22178:22184 */\n dup5\n /* \"#utility.yul\":22116:22192 */\n tag_461\n jump\t// in\n tag_705:\n /* \"#utility.yul\":22108:22192 */\n swap1\n pop\n /* \"#utility.yul\":21559:22199 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":22205:22346 */\n tag_462:\n /* \"#utility.yul\":22261:22266 */\n 0x00\n /* \"#utility.yul\":22292:22298 */\n dup2\n /* \"#utility.yul\":22286:22299 */\n mload\n /* \"#utility.yul\":22277:22299 */\n swap1\n pop\n /* \"#utility.yul\":22308:22340 */\n tag_707\n /* \"#utility.yul\":22334:22339 */\n dup2\n /* \"#utility.yul\":22308:22340 */\n tag_407\n jump\t// in\n tag_707:\n /* \"#utility.yul\":22205:22346 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":22352:22701 */\n tag_273:\n /* \"#utility.yul\":22421:22427 */\n 0x00\n /* \"#utility.yul\":22470:22472 */\n 0x20\n /* \"#utility.yul\":22458:22467 */\n dup3\n /* \"#utility.yul\":22449:22456 */\n dup5\n /* \"#utility.yul\":22445:22468 */\n sub\n /* \"#utility.yul\":22441:22473 */\n slt\n /* \"#utility.yul\":22438:22557 */\n iszero\n tag_709\n jumpi\n /* \"#utility.yul\":22476:22555 */\n tag_710\n tag_404\n jump\t// in\n tag_710:\n /* \"#utility.yul\":22438:22557 */\n tag_709:\n /* \"#utility.yul\":22596:22597 */\n 0x00\n /* \"#utility.yul\":22621:22684 */\n tag_711\n /* \"#utility.yul\":22676:22683 */\n dup5\n /* \"#utility.yul\":22667:22673 */\n dup3\n /* \"#utility.yul\":22656:22665 */\n dup6\n /* \"#utility.yul\":22652:22674 */\n add\n /* \"#utility.yul\":22621:22684 */\n tag_462\n jump\t// in\n tag_711:\n /* \"#utility.yul\":22611:22684 */\n swap2\n pop\n /* \"#utility.yul\":22567:22694 */\n pop\n /* \"#utility.yul\":22352:22701 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":22707:22901 */\n tag_368:\n /* \"#utility.yul\":22747:22751 */\n 0x00\n /* \"#utility.yul\":22767:22787 */\n tag_713\n /* \"#utility.yul\":22785:22786 */\n dup3\n /* \"#utility.yul\":22767:22787 */\n tag_416\n jump\t// in\n tag_713:\n /* \"#utility.yul\":22762:22787 */\n swap2\n pop\n /* \"#utility.yul\":22801:22821 */\n tag_714\n /* \"#utility.yul\":22819:22820 */\n dup4\n /* \"#utility.yul\":22801:22821 */\n tag_416\n jump\t// in\n tag_714:\n /* \"#utility.yul\":22796:22821 */\n swap3\n pop\n /* \"#utility.yul\":22845:22846 */\n dup3\n /* \"#utility.yul\":22842:22843 */\n dup3\n /* \"#utility.yul\":22838:22847 */\n sub\n /* \"#utility.yul\":22830:22847 */\n swap1\n pop\n /* \"#utility.yul\":22869:22870 */\n dup2\n /* \"#utility.yul\":22863:22867 */\n dup2\n /* \"#utility.yul\":22860:22871 */\n gt\n /* \"#utility.yul\":22857:22894 */\n iszero\n tag_715\n jumpi\n /* \"#utility.yul\":22874:22892 */\n tag_716\n tag_439\n jump\t// in\n tag_716:\n /* \"#utility.yul\":22857:22894 */\n tag_715:\n /* \"#utility.yul\":22707:22901 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":22907:23087 */\n tag_377:\n /* \"#utility.yul\":22955:23032 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":22952:22953 */\n 0x00\n /* \"#utility.yul\":22945:23033 */\n mstore\n /* \"#utility.yul\":23052:23056 */\n 0x31\n /* \"#utility.yul\":23049:23050 */\n 0x04\n /* \"#utility.yul\":23042:23057 */\n mstore\n /* \"#utility.yul\":23076:23080 */\n 0x24\n /* \"#utility.yul\":23073:23074 */\n 0x00\n /* \"#utility.yul\":23066:23081 */\n revert\n\n auxdata: 0xa2646970667358221220e742470774f454e660aa990254ed1f1d8f5271ffa5f567e4e79c7881bf12ea2064736f6c634300081a0033\n}\n", + "bytecode": { + "functionDebugData": { + "@_3554": { + "entryPoint": null, + "id": 3554, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_386": { + "entryPoint": null, + "id": 386, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 353, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 812, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 878, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 924, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1802, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1817, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 694, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 551, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 721, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1104, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 997, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1401, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 1784, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1752, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1236, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1366, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1256, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1542, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 770, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1125, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1055, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1514, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 645, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1246, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1484, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 1008, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1290, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 571, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 576, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 566, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 561, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 581, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1141, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1471, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1342, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1154, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1300, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1337, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:8833:19", + "nodeType": "YulBlock", + "src": "0:8833:19", + "statements": [ + { + "body": { + "nativeSrc": "47:35:19", + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nativeSrc": "57:19:19", + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:19", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:19", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nativeSrc": "67:9:19", + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:19", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:19", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nativeSrc": "177:28:19", + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:19", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:19", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:19", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:19", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nativeSrc": "300:28:19", + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:19", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:19", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:19", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:19", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nativeSrc": "423:28:19", + "nodeType": "YulBlock", + "src": "423:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:19", + "nodeType": "YulLiteral", + "src": "440:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:19", + "nodeType": "YulLiteral", + "src": "443:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:19", + "nodeType": "YulIdentifier", + "src": "433:6:19" + }, + "nativeSrc": "433:12:19", + "nodeType": "YulFunctionCall", + "src": "433:12:19" + }, + "nativeSrc": "433:12:19", + "nodeType": "YulExpressionStatement", + "src": "433:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:19", + "nodeType": "YulFunctionDefinition", + "src": "334:117:19" + }, + { + "body": { + "nativeSrc": "546:28:19", + "nodeType": "YulBlock", + "src": "546:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:19", + "nodeType": "YulLiteral", + "src": "563:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:19", + "nodeType": "YulLiteral", + "src": "566:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:19", + "nodeType": "YulIdentifier", + "src": "556:6:19" + }, + "nativeSrc": "556:12:19", + "nodeType": "YulFunctionCall", + "src": "556:12:19" + }, + "nativeSrc": "556:12:19", + "nodeType": "YulExpressionStatement", + "src": "556:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:19", + "nodeType": "YulFunctionDefinition", + "src": "457:117:19" + }, + { + "body": { + "nativeSrc": "628:54:19", + "nodeType": "YulBlock", + "src": "628:54:19", + "statements": [ + { + "nativeSrc": "638:38:19", + "nodeType": "YulAssignment", + "src": "638:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:19", + "nodeType": "YulIdentifier", + "src": "656:5:19" + }, + { + "kind": "number", + "nativeSrc": "663:2:19", + "nodeType": "YulLiteral", + "src": "663:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:19", + "nodeType": "YulIdentifier", + "src": "652:3:19" + }, + "nativeSrc": "652:14:19", + "nodeType": "YulFunctionCall", + "src": "652:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:19", + "nodeType": "YulLiteral", + "src": "672:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:19", + "nodeType": "YulIdentifier", + "src": "668:3:19" + }, + "nativeSrc": "668:7:19", + "nodeType": "YulFunctionCall", + "src": "668:7:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:19", + "nodeType": "YulIdentifier", + "src": "648:3:19" + }, + "nativeSrc": "648:28:19", + "nodeType": "YulFunctionCall", + "src": "648:28:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:19", + "nodeType": "YulIdentifier", + "src": "638:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:19", + "nodeType": "YulTypedName", + "src": "611:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:19", + "nodeType": "YulTypedName", + "src": "621:6:19", + "type": "" + } + ], + "src": "580:102:19" + }, + { + "body": { + "nativeSrc": "716:152:19", + "nodeType": "YulBlock", + "src": "716:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "733:1:19", + "nodeType": "YulLiteral", + "src": "733:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:19", + "nodeType": "YulLiteral", + "src": "736:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:19", + "nodeType": "YulIdentifier", + "src": "726:6:19" + }, + "nativeSrc": "726:88:19", + "nodeType": "YulFunctionCall", + "src": "726:88:19" + }, + "nativeSrc": "726:88:19", + "nodeType": "YulExpressionStatement", + "src": "726:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "830:1:19", + "nodeType": "YulLiteral", + "src": "830:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:19", + "nodeType": "YulLiteral", + "src": "833:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "823:6:19", + "nodeType": "YulIdentifier", + "src": "823:6:19" + }, + "nativeSrc": "823:15:19", + "nodeType": "YulFunctionCall", + "src": "823:15:19" + }, + "nativeSrc": "823:15:19", + "nodeType": "YulExpressionStatement", + "src": "823:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:19", + "nodeType": "YulLiteral", + "src": "854:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:19", + "nodeType": "YulLiteral", + "src": "857:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:19", + "nodeType": "YulIdentifier", + "src": "847:6:19" + }, + "nativeSrc": "847:15:19", + "nodeType": "YulFunctionCall", + "src": "847:15:19" + }, + "nativeSrc": "847:15:19", + "nodeType": "YulExpressionStatement", + "src": "847:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:19", + "nodeType": "YulFunctionDefinition", + "src": "688:180:19" + }, + { + "body": { + "nativeSrc": "917:238:19", + "nodeType": "YulBlock", + "src": "917:238:19", + "statements": [ + { + "nativeSrc": "927:58:19", + "nodeType": "YulVariableDeclaration", + "src": "927:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:19", + "nodeType": "YulIdentifier", + "src": "949:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:19", + "nodeType": "YulIdentifier", + "src": "979:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:19", + "nodeType": "YulIdentifier", + "src": "957:21:19" + }, + "nativeSrc": "957:27:19", + "nodeType": "YulFunctionCall", + "src": "957:27:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:19", + "nodeType": "YulIdentifier", + "src": "945:3:19" + }, + "nativeSrc": "945:40:19", + "nodeType": "YulFunctionCall", + "src": "945:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "931:10:19", + "nodeType": "YulTypedName", + "src": "931:10:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1096:22:19", + "nodeType": "YulBlock", + "src": "1096:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:19", + "nodeType": "YulIdentifier", + "src": "1098:16:19" + }, + "nativeSrc": "1098:18:19", + "nodeType": "YulFunctionCall", + "src": "1098:18:19" + }, + "nativeSrc": "1098:18:19", + "nodeType": "YulExpressionStatement", + "src": "1098:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1039:10:19", + "nodeType": "YulIdentifier", + "src": "1039:10:19" + }, + { + "kind": "number", + "nativeSrc": "1051:18:19", + "nodeType": "YulLiteral", + "src": "1051:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:19", + "nodeType": "YulIdentifier", + "src": "1036:2:19" + }, + "nativeSrc": "1036:34:19", + "nodeType": "YulFunctionCall", + "src": "1036:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:19", + "nodeType": "YulIdentifier", + "src": "1075:10:19" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:19", + "nodeType": "YulIdentifier", + "src": "1087:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:19", + "nodeType": "YulIdentifier", + "src": "1072:2:19" + }, + "nativeSrc": "1072:22:19", + "nodeType": "YulFunctionCall", + "src": "1072:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:19", + "nodeType": "YulIdentifier", + "src": "1033:2:19" + }, + "nativeSrc": "1033:62:19", + "nodeType": "YulFunctionCall", + "src": "1033:62:19" + }, + "nativeSrc": "1030:88:19", + "nodeType": "YulIf", + "src": "1030:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:19", + "nodeType": "YulLiteral", + "src": "1134:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:19", + "nodeType": "YulIdentifier", + "src": "1138:10:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:19", + "nodeType": "YulIdentifier", + "src": "1127:6:19" + }, + "nativeSrc": "1127:22:19", + "nodeType": "YulFunctionCall", + "src": "1127:22:19" + }, + "nativeSrc": "1127:22:19", + "nodeType": "YulExpressionStatement", + "src": "1127:22:19" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "874:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "903:6:19", + "nodeType": "YulTypedName", + "src": "903:6:19", + "type": "" + }, + { + "name": "size", + "nativeSrc": "911:4:19", + "nodeType": "YulTypedName", + "src": "911:4:19", + "type": "" + } + ], + "src": "874:281:19" + }, + { + "body": { + "nativeSrc": "1202:88:19", + "nodeType": "YulBlock", + "src": "1202:88:19", + "statements": [ + { + "nativeSrc": "1212:30:19", + "nodeType": "YulAssignment", + "src": "1212:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:19", + "nodeType": "YulIdentifier", + "src": "1222:18:19" + }, + "nativeSrc": "1222:20:19", + "nodeType": "YulFunctionCall", + "src": "1222:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1212:6:19", + "nodeType": "YulIdentifier", + "src": "1212:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1271:6:19", + "nodeType": "YulIdentifier", + "src": "1271:6:19" + }, + { + "name": "size", + "nativeSrc": "1279:4:19", + "nodeType": "YulIdentifier", + "src": "1279:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1251:19:19", + "nodeType": "YulIdentifier", + "src": "1251:19:19" + }, + "nativeSrc": "1251:33:19", + "nodeType": "YulFunctionCall", + "src": "1251:33:19" + }, + "nativeSrc": "1251:33:19", + "nodeType": "YulExpressionStatement", + "src": "1251:33:19" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1161:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1186:4:19", + "nodeType": "YulTypedName", + "src": "1186:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1195:6:19", + "nodeType": "YulTypedName", + "src": "1195:6:19", + "type": "" + } + ], + "src": "1161:129:19" + }, + { + "body": { + "nativeSrc": "1363:241:19", + "nodeType": "YulBlock", + "src": "1363:241:19", + "statements": [ + { + "body": { + "nativeSrc": "1468:22:19", + "nodeType": "YulBlock", + "src": "1468:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:19", + "nodeType": "YulIdentifier", + "src": "1470:16:19" + }, + "nativeSrc": "1470:18:19", + "nodeType": "YulFunctionCall", + "src": "1470:18:19" + }, + "nativeSrc": "1470:18:19", + "nodeType": "YulExpressionStatement", + "src": "1470:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:19", + "nodeType": "YulIdentifier", + "src": "1440:6:19" + }, + { + "kind": "number", + "nativeSrc": "1448:18:19", + "nodeType": "YulLiteral", + "src": "1448:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1437:2:19", + "nodeType": "YulIdentifier", + "src": "1437:2:19" + }, + "nativeSrc": "1437:30:19", + "nodeType": "YulFunctionCall", + "src": "1437:30:19" + }, + "nativeSrc": "1434:56:19", + "nodeType": "YulIf", + "src": "1434:56:19" + }, + { + "nativeSrc": "1500:37:19", + "nodeType": "YulAssignment", + "src": "1500:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:19", + "nodeType": "YulIdentifier", + "src": "1530:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:19", + "nodeType": "YulIdentifier", + "src": "1508:21:19" + }, + "nativeSrc": "1508:29:19", + "nodeType": "YulFunctionCall", + "src": "1508:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1500:4:19", + "nodeType": "YulIdentifier", + "src": "1500:4:19" + } + ] + }, + { + "nativeSrc": "1574:23:19", + "nodeType": "YulAssignment", + "src": "1574:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1586:4:19", + "nodeType": "YulIdentifier", + "src": "1586:4:19" + }, + { + "kind": "number", + "nativeSrc": "1592:4:19", + "nodeType": "YulLiteral", + "src": "1592:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:19", + "nodeType": "YulIdentifier", + "src": "1582:3:19" + }, + "nativeSrc": "1582:15:19", + "nodeType": "YulFunctionCall", + "src": "1582:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1574:4:19", + "nodeType": "YulIdentifier", + "src": "1574:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1347:6:19", + "nodeType": "YulTypedName", + "src": "1347:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1358:4:19", + "nodeType": "YulTypedName", + "src": "1358:4:19", + "type": "" + } + ], + "src": "1296:308:19" + }, + { + "body": { + "nativeSrc": "1672:186:19", + "nodeType": "YulBlock", + "src": "1672:186:19", + "statements": [ + { + "nativeSrc": "1683:10:19", + "nodeType": "YulVariableDeclaration", + "src": "1683:10:19", + "value": { + "kind": "number", + "nativeSrc": "1692:1:19", + "nodeType": "YulLiteral", + "src": "1692:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1687:1:19", + "nodeType": "YulTypedName", + "src": "1687:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1752:63:19", + "nodeType": "YulBlock", + "src": "1752:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1777:3:19", + "nodeType": "YulIdentifier", + "src": "1777:3:19" + }, + { + "name": "i", + "nativeSrc": "1782:1:19", + "nodeType": "YulIdentifier", + "src": "1782:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1773:3:19", + "nodeType": "YulIdentifier", + "src": "1773:3:19" + }, + "nativeSrc": "1773:11:19", + "nodeType": "YulFunctionCall", + "src": "1773:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1796:3:19", + "nodeType": "YulIdentifier", + "src": "1796:3:19" + }, + { + "name": "i", + "nativeSrc": "1801:1:19", + "nodeType": "YulIdentifier", + "src": "1801:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1792:3:19", + "nodeType": "YulIdentifier", + "src": "1792:3:19" + }, + "nativeSrc": "1792:11:19", + "nodeType": "YulFunctionCall", + "src": "1792:11:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1786:5:19", + "nodeType": "YulIdentifier", + "src": "1786:5:19" + }, + "nativeSrc": "1786:18:19", + "nodeType": "YulFunctionCall", + "src": "1786:18:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1766:6:19", + "nodeType": "YulIdentifier", + "src": "1766:6:19" + }, + "nativeSrc": "1766:39:19", + "nodeType": "YulFunctionCall", + "src": "1766:39:19" + }, + "nativeSrc": "1766:39:19", + "nodeType": "YulExpressionStatement", + "src": "1766:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1713:1:19", + "nodeType": "YulIdentifier", + "src": "1713:1:19" + }, + { + "name": "length", + "nativeSrc": "1716:6:19", + "nodeType": "YulIdentifier", + "src": "1716:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1710:2:19", + "nodeType": "YulIdentifier", + "src": "1710:2:19" + }, + "nativeSrc": "1710:13:19", + "nodeType": "YulFunctionCall", + "src": "1710:13:19" + }, + "nativeSrc": "1702:113:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1724:19:19", + "nodeType": "YulBlock", + "src": "1724:19:19", + "statements": [ + { + "nativeSrc": "1726:15:19", + "nodeType": "YulAssignment", + "src": "1726:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1735:1:19", + "nodeType": "YulIdentifier", + "src": "1735:1:19" + }, + { + "kind": "number", + "nativeSrc": "1738:2:19", + "nodeType": "YulLiteral", + "src": "1738:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1731:3:19", + "nodeType": "YulIdentifier", + "src": "1731:3:19" + }, + "nativeSrc": "1731:10:19", + "nodeType": "YulFunctionCall", + "src": "1731:10:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1726:1:19", + "nodeType": "YulIdentifier", + "src": "1726:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1706:3:19", + "nodeType": "YulBlock", + "src": "1706:3:19", + "statements": [] + }, + "src": "1702:113:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1835:3:19", + "nodeType": "YulIdentifier", + "src": "1835:3:19" + }, + { + "name": "length", + "nativeSrc": "1840:6:19", + "nodeType": "YulIdentifier", + "src": "1840:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1831:3:19", + "nodeType": "YulIdentifier", + "src": "1831:3:19" + }, + "nativeSrc": "1831:16:19", + "nodeType": "YulFunctionCall", + "src": "1831:16:19" + }, + { + "kind": "number", + "nativeSrc": "1849:1:19", + "nodeType": "YulLiteral", + "src": "1849:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1824:6:19", + "nodeType": "YulIdentifier", + "src": "1824:6:19" + }, + "nativeSrc": "1824:27:19", + "nodeType": "YulFunctionCall", + "src": "1824:27:19" + }, + "nativeSrc": "1824:27:19", + "nodeType": "YulExpressionStatement", + "src": "1824:27:19" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:248:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1654:3:19", + "nodeType": "YulTypedName", + "src": "1654:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1659:3:19", + "nodeType": "YulTypedName", + "src": "1659:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1664:6:19", + "nodeType": "YulTypedName", + "src": "1664:6:19", + "type": "" + } + ], + "src": "1610:248:19" + }, + { + "body": { + "nativeSrc": "1959:339:19", + "nodeType": "YulBlock", + "src": "1959:339:19", + "statements": [ + { + "nativeSrc": "1969:75:19", + "nodeType": "YulAssignment", + "src": "1969:75:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2036:6:19", + "nodeType": "YulIdentifier", + "src": "2036:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1994:41:19", + "nodeType": "YulIdentifier", + "src": "1994:41:19" + }, + "nativeSrc": "1994:49:19", + "nodeType": "YulFunctionCall", + "src": "1994:49:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "1978:15:19", + "nodeType": "YulIdentifier", + "src": "1978:15:19" + }, + "nativeSrc": "1978:66:19", + "nodeType": "YulFunctionCall", + "src": "1978:66:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "1969:5:19", + "nodeType": "YulIdentifier", + "src": "1969:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2060:5:19", + "nodeType": "YulIdentifier", + "src": "2060:5:19" + }, + { + "name": "length", + "nativeSrc": "2067:6:19", + "nodeType": "YulIdentifier", + "src": "2067:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2053:6:19", + "nodeType": "YulIdentifier", + "src": "2053:6:19" + }, + "nativeSrc": "2053:21:19", + "nodeType": "YulFunctionCall", + "src": "2053:21:19" + }, + "nativeSrc": "2053:21:19", + "nodeType": "YulExpressionStatement", + "src": "2053:21:19" + }, + { + "nativeSrc": "2083:27:19", + "nodeType": "YulVariableDeclaration", + "src": "2083:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2098:5:19", + "nodeType": "YulIdentifier", + "src": "2098:5:19" + }, + { + "kind": "number", + "nativeSrc": "2105:4:19", + "nodeType": "YulLiteral", + "src": "2105:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2094:3:19", + "nodeType": "YulIdentifier", + "src": "2094:3:19" + }, + "nativeSrc": "2094:16:19", + "nodeType": "YulFunctionCall", + "src": "2094:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2087:3:19", + "nodeType": "YulTypedName", + "src": "2087:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2148:83:19", + "nodeType": "YulBlock", + "src": "2148:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2150:77:19", + "nodeType": "YulIdentifier", + "src": "2150:77:19" + }, + "nativeSrc": "2150:79:19", + "nodeType": "YulFunctionCall", + "src": "2150:79:19" + }, + "nativeSrc": "2150:79:19", + "nodeType": "YulExpressionStatement", + "src": "2150:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2129:3:19", + "nodeType": "YulIdentifier", + "src": "2129:3:19" + }, + { + "name": "length", + "nativeSrc": "2134:6:19", + "nodeType": "YulIdentifier", + "src": "2134:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2125:3:19", + "nodeType": "YulIdentifier", + "src": "2125:3:19" + }, + "nativeSrc": "2125:16:19", + "nodeType": "YulFunctionCall", + "src": "2125:16:19" + }, + { + "name": "end", + "nativeSrc": "2143:3:19", + "nodeType": "YulIdentifier", + "src": "2143:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2122:2:19", + "nodeType": "YulIdentifier", + "src": "2122:2:19" + }, + "nativeSrc": "2122:25:19", + "nodeType": "YulFunctionCall", + "src": "2122:25:19" + }, + "nativeSrc": "2119:112:19", + "nodeType": "YulIf", + "src": "2119:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2275:3:19", + "nodeType": "YulIdentifier", + "src": "2275:3:19" + }, + { + "name": "dst", + "nativeSrc": "2280:3:19", + "nodeType": "YulIdentifier", + "src": "2280:3:19" + }, + { + "name": "length", + "nativeSrc": "2285:6:19", + "nodeType": "YulIdentifier", + "src": "2285:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2240:34:19", + "nodeType": "YulIdentifier", + "src": "2240:34:19" + }, + "nativeSrc": "2240:52:19", + "nodeType": "YulFunctionCall", + "src": "2240:52:19" + }, + "nativeSrc": "2240:52:19", + "nodeType": "YulExpressionStatement", + "src": "2240:52:19" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1864:434:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1932:3:19", + "nodeType": "YulTypedName", + "src": "1932:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1937:6:19", + "nodeType": "YulTypedName", + "src": "1937:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1945:3:19", + "nodeType": "YulTypedName", + "src": "1945:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "1953:5:19", + "nodeType": "YulTypedName", + "src": "1953:5:19", + "type": "" + } + ], + "src": "1864:434:19" + }, + { + "body": { + "nativeSrc": "2391:282:19", + "nodeType": "YulBlock", + "src": "2391:282:19", + "statements": [ + { + "body": { + "nativeSrc": "2440:83:19", + "nodeType": "YulBlock", + "src": "2440:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2442:77:19", + "nodeType": "YulIdentifier", + "src": "2442:77:19" + }, + "nativeSrc": "2442:79:19", + "nodeType": "YulFunctionCall", + "src": "2442:79:19" + }, + "nativeSrc": "2442:79:19", + "nodeType": "YulExpressionStatement", + "src": "2442:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2419:6:19", + "nodeType": "YulIdentifier", + "src": "2419:6:19" + }, + { + "kind": "number", + "nativeSrc": "2427:4:19", + "nodeType": "YulLiteral", + "src": "2427:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2415:3:19", + "nodeType": "YulIdentifier", + "src": "2415:3:19" + }, + "nativeSrc": "2415:17:19", + "nodeType": "YulFunctionCall", + "src": "2415:17:19" + }, + { + "name": "end", + "nativeSrc": "2434:3:19", + "nodeType": "YulIdentifier", + "src": "2434:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2411:3:19", + "nodeType": "YulIdentifier", + "src": "2411:3:19" + }, + "nativeSrc": "2411:27:19", + "nodeType": "YulFunctionCall", + "src": "2411:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2404:6:19", + "nodeType": "YulIdentifier", + "src": "2404:6:19" + }, + "nativeSrc": "2404:35:19", + "nodeType": "YulFunctionCall", + "src": "2404:35:19" + }, + "nativeSrc": "2401:122:19", + "nodeType": "YulIf", + "src": "2401:122:19" + }, + { + "nativeSrc": "2532:27:19", + "nodeType": "YulVariableDeclaration", + "src": "2532:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2552:6:19", + "nodeType": "YulIdentifier", + "src": "2552:6:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2546:5:19", + "nodeType": "YulIdentifier", + "src": "2546:5:19" + }, + "nativeSrc": "2546:13:19", + "nodeType": "YulFunctionCall", + "src": "2546:13:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2536:6:19", + "nodeType": "YulTypedName", + "src": "2536:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2568:99:19", + "nodeType": "YulAssignment", + "src": "2568:99:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2640:6:19", + "nodeType": "YulIdentifier", + "src": "2640:6:19" + }, + { + "kind": "number", + "nativeSrc": "2648:4:19", + "nodeType": "YulLiteral", + "src": "2648:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2636:3:19", + "nodeType": "YulIdentifier", + "src": "2636:3:19" + }, + "nativeSrc": "2636:17:19", + "nodeType": "YulFunctionCall", + "src": "2636:17:19" + }, + { + "name": "length", + "nativeSrc": "2655:6:19", + "nodeType": "YulIdentifier", + "src": "2655:6:19" + }, + { + "name": "end", + "nativeSrc": "2663:3:19", + "nodeType": "YulIdentifier", + "src": "2663:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2577:58:19", + "nodeType": "YulIdentifier", + "src": "2577:58:19" + }, + "nativeSrc": "2577:90:19", + "nodeType": "YulFunctionCall", + "src": "2577:90:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2568:5:19", + "nodeType": "YulIdentifier", + "src": "2568:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2318:355:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2369:6:19", + "nodeType": "YulTypedName", + "src": "2369:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2377:3:19", + "nodeType": "YulTypedName", + "src": "2377:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2385:5:19", + "nodeType": "YulTypedName", + "src": "2385:5:19", + "type": "" + } + ], + "src": "2318:355:19" + }, + { + "body": { + "nativeSrc": "2766:437:19", + "nodeType": "YulBlock", + "src": "2766:437:19", + "statements": [ + { + "body": { + "nativeSrc": "2812:83:19", + "nodeType": "YulBlock", + "src": "2812:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2814:77:19", + "nodeType": "YulIdentifier", + "src": "2814:77:19" + }, + "nativeSrc": "2814:79:19", + "nodeType": "YulFunctionCall", + "src": "2814:79:19" + }, + "nativeSrc": "2814:79:19", + "nodeType": "YulExpressionStatement", + "src": "2814:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2787:7:19", + "nodeType": "YulIdentifier", + "src": "2787:7:19" + }, + { + "name": "headStart", + "nativeSrc": "2796:9:19", + "nodeType": "YulIdentifier", + "src": "2796:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2783:3:19", + "nodeType": "YulIdentifier", + "src": "2783:3:19" + }, + "nativeSrc": "2783:23:19", + "nodeType": "YulFunctionCall", + "src": "2783:23:19" + }, + { + "kind": "number", + "nativeSrc": "2808:2:19", + "nodeType": "YulLiteral", + "src": "2808:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2779:3:19", + "nodeType": "YulIdentifier", + "src": "2779:3:19" + }, + "nativeSrc": "2779:32:19", + "nodeType": "YulFunctionCall", + "src": "2779:32:19" + }, + "nativeSrc": "2776:119:19", + "nodeType": "YulIf", + "src": "2776:119:19" + }, + { + "nativeSrc": "2905:291:19", + "nodeType": "YulBlock", + "src": "2905:291:19", + "statements": [ + { + "nativeSrc": "2920:38:19", + "nodeType": "YulVariableDeclaration", + "src": "2920:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2944:9:19", + "nodeType": "YulIdentifier", + "src": "2944:9:19" + }, + { + "kind": "number", + "nativeSrc": "2955:1:19", + "nodeType": "YulLiteral", + "src": "2955:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2940:3:19", + "nodeType": "YulIdentifier", + "src": "2940:3:19" + }, + "nativeSrc": "2940:17:19", + "nodeType": "YulFunctionCall", + "src": "2940:17:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2934:5:19", + "nodeType": "YulIdentifier", + "src": "2934:5:19" + }, + "nativeSrc": "2934:24:19", + "nodeType": "YulFunctionCall", + "src": "2934:24:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2924:6:19", + "nodeType": "YulTypedName", + "src": "2924:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3005:83:19", + "nodeType": "YulBlock", + "src": "3005:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3007:77:19", + "nodeType": "YulIdentifier", + "src": "3007:77:19" + }, + "nativeSrc": "3007:79:19", + "nodeType": "YulFunctionCall", + "src": "3007:79:19" + }, + "nativeSrc": "3007:79:19", + "nodeType": "YulExpressionStatement", + "src": "3007:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2977:6:19", + "nodeType": "YulIdentifier", + "src": "2977:6:19" + }, + { + "kind": "number", + "nativeSrc": "2985:18:19", + "nodeType": "YulLiteral", + "src": "2985:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2974:2:19", + "nodeType": "YulIdentifier", + "src": "2974:2:19" + }, + "nativeSrc": "2974:30:19", + "nodeType": "YulFunctionCall", + "src": "2974:30:19" + }, + "nativeSrc": "2971:117:19", + "nodeType": "YulIf", + "src": "2971:117:19" + }, + { + "nativeSrc": "3102:84:19", + "nodeType": "YulAssignment", + "src": "3102:84:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3158:9:19", + "nodeType": "YulIdentifier", + "src": "3158:9:19" + }, + { + "name": "offset", + "nativeSrc": "3169:6:19", + "nodeType": "YulIdentifier", + "src": "3169:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3154:3:19", + "nodeType": "YulIdentifier", + "src": "3154:3:19" + }, + "nativeSrc": "3154:22:19", + "nodeType": "YulFunctionCall", + "src": "3154:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "3178:7:19", + "nodeType": "YulIdentifier", + "src": "3178:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3112:41:19", + "nodeType": "YulIdentifier", + "src": "3112:41:19" + }, + "nativeSrc": "3112:74:19", + "nodeType": "YulFunctionCall", + "src": "3112:74:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3102:6:19", + "nodeType": "YulIdentifier", + "src": "3102:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2679:524:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2736:9:19", + "nodeType": "YulTypedName", + "src": "2736:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2747:7:19", + "nodeType": "YulTypedName", + "src": "2747:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2759:6:19", + "nodeType": "YulTypedName", + "src": "2759:6:19", + "type": "" + } + ], + "src": "2679:524:19" + }, + { + "body": { + "nativeSrc": "3268:40:19", + "nodeType": "YulBlock", + "src": "3268:40:19", + "statements": [ + { + "nativeSrc": "3279:22:19", + "nodeType": "YulAssignment", + "src": "3279:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3295:5:19", + "nodeType": "YulIdentifier", + "src": "3295:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3289:5:19", + "nodeType": "YulIdentifier", + "src": "3289:5:19" + }, + "nativeSrc": "3289:12:19", + "nodeType": "YulFunctionCall", + "src": "3289:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3279:6:19", + "nodeType": "YulIdentifier", + "src": "3279:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3209:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3251:5:19", + "nodeType": "YulTypedName", + "src": "3251:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3261:6:19", + "nodeType": "YulTypedName", + "src": "3261:6:19", + "type": "" + } + ], + "src": "3209:99:19" + }, + { + "body": { + "nativeSrc": "3342:152:19", + "nodeType": "YulBlock", + "src": "3342:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3359:1:19", + "nodeType": "YulLiteral", + "src": "3359:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3362:77:19", + "nodeType": "YulLiteral", + "src": "3362:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3352:6:19", + "nodeType": "YulIdentifier", + "src": "3352:6:19" + }, + "nativeSrc": "3352:88:19", + "nodeType": "YulFunctionCall", + "src": "3352:88:19" + }, + "nativeSrc": "3352:88:19", + "nodeType": "YulExpressionStatement", + "src": "3352:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3456:1:19", + "nodeType": "YulLiteral", + "src": "3456:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3459:4:19", + "nodeType": "YulLiteral", + "src": "3459:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3449:6:19", + "nodeType": "YulIdentifier", + "src": "3449:6:19" + }, + "nativeSrc": "3449:15:19", + "nodeType": "YulFunctionCall", + "src": "3449:15:19" + }, + "nativeSrc": "3449:15:19", + "nodeType": "YulExpressionStatement", + "src": "3449:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3480:1:19", + "nodeType": "YulLiteral", + "src": "3480:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3483:4:19", + "nodeType": "YulLiteral", + "src": "3483:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3473:6:19", + "nodeType": "YulIdentifier", + "src": "3473:6:19" + }, + "nativeSrc": "3473:15:19", + "nodeType": "YulFunctionCall", + "src": "3473:15:19" + }, + "nativeSrc": "3473:15:19", + "nodeType": "YulExpressionStatement", + "src": "3473:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "3314:180:19", + "nodeType": "YulFunctionDefinition", + "src": "3314:180:19" + }, + { + "body": { + "nativeSrc": "3551:269:19", + "nodeType": "YulBlock", + "src": "3551:269:19", + "statements": [ + { + "nativeSrc": "3561:22:19", + "nodeType": "YulAssignment", + "src": "3561:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3575:4:19", + "nodeType": "YulIdentifier", + "src": "3575:4:19" + }, + { + "kind": "number", + "nativeSrc": "3581:1:19", + "nodeType": "YulLiteral", + "src": "3581:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3571:3:19", + "nodeType": "YulIdentifier", + "src": "3571:3:19" + }, + "nativeSrc": "3571:12:19", + "nodeType": "YulFunctionCall", + "src": "3571:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3561:6:19", + "nodeType": "YulIdentifier", + "src": "3561:6:19" + } + ] + }, + { + "nativeSrc": "3592:38:19", + "nodeType": "YulVariableDeclaration", + "src": "3592:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3622:4:19", + "nodeType": "YulIdentifier", + "src": "3622:4:19" + }, + { + "kind": "number", + "nativeSrc": "3628:1:19", + "nodeType": "YulLiteral", + "src": "3628:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3618:3:19", + "nodeType": "YulIdentifier", + "src": "3618:3:19" + }, + "nativeSrc": "3618:12:19", + "nodeType": "YulFunctionCall", + "src": "3618:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3596:18:19", + "nodeType": "YulTypedName", + "src": "3596:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3669:51:19", + "nodeType": "YulBlock", + "src": "3669:51:19", + "statements": [ + { + "nativeSrc": "3683:27:19", + "nodeType": "YulAssignment", + "src": "3683:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3697:6:19", + "nodeType": "YulIdentifier", + "src": "3697:6:19" + }, + { + "kind": "number", + "nativeSrc": "3705:4:19", + "nodeType": "YulLiteral", + "src": "3705:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3693:3:19", + "nodeType": "YulIdentifier", + "src": "3693:3:19" + }, + "nativeSrc": "3693:17:19", + "nodeType": "YulFunctionCall", + "src": "3693:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3683:6:19", + "nodeType": "YulIdentifier", + "src": "3683:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3649:18:19", + "nodeType": "YulIdentifier", + "src": "3649:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3642:6:19", + "nodeType": "YulIdentifier", + "src": "3642:6:19" + }, + "nativeSrc": "3642:26:19", + "nodeType": "YulFunctionCall", + "src": "3642:26:19" + }, + "nativeSrc": "3639:81:19", + "nodeType": "YulIf", + "src": "3639:81:19" + }, + { + "body": { + "nativeSrc": "3772:42:19", + "nodeType": "YulBlock", + "src": "3772:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "3786:16:19", + "nodeType": "YulIdentifier", + "src": "3786:16:19" + }, + "nativeSrc": "3786:18:19", + "nodeType": "YulFunctionCall", + "src": "3786:18:19" + }, + "nativeSrc": "3786:18:19", + "nodeType": "YulExpressionStatement", + "src": "3786:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3736:18:19", + "nodeType": "YulIdentifier", + "src": "3736:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3759:6:19", + "nodeType": "YulIdentifier", + "src": "3759:6:19" + }, + { + "kind": "number", + "nativeSrc": "3767:2:19", + "nodeType": "YulLiteral", + "src": "3767:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3756:2:19", + "nodeType": "YulIdentifier", + "src": "3756:2:19" + }, + "nativeSrc": "3756:14:19", + "nodeType": "YulFunctionCall", + "src": "3756:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3733:2:19", + "nodeType": "YulIdentifier", + "src": "3733:2:19" + }, + "nativeSrc": "3733:38:19", + "nodeType": "YulFunctionCall", + "src": "3733:38:19" + }, + "nativeSrc": "3730:84:19", + "nodeType": "YulIf", + "src": "3730:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3500:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3535:4:19", + "nodeType": "YulTypedName", + "src": "3535:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3544:6:19", + "nodeType": "YulTypedName", + "src": "3544:6:19", + "type": "" + } + ], + "src": "3500:320:19" + }, + { + "body": { + "nativeSrc": "3880:87:19", + "nodeType": "YulBlock", + "src": "3880:87:19", + "statements": [ + { + "nativeSrc": "3890:11:19", + "nodeType": "YulAssignment", + "src": "3890:11:19", + "value": { + "name": "ptr", + "nativeSrc": "3898:3:19", + "nodeType": "YulIdentifier", + "src": "3898:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3890:4:19", + "nodeType": "YulIdentifier", + "src": "3890:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3918:1:19", + "nodeType": "YulLiteral", + "src": "3918:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3921:3:19", + "nodeType": "YulIdentifier", + "src": "3921:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3911:6:19", + "nodeType": "YulIdentifier", + "src": "3911:6:19" + }, + "nativeSrc": "3911:14:19", + "nodeType": "YulFunctionCall", + "src": "3911:14:19" + }, + "nativeSrc": "3911:14:19", + "nodeType": "YulExpressionStatement", + "src": "3911:14:19" + }, + { + "nativeSrc": "3934:26:19", + "nodeType": "YulAssignment", + "src": "3934:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3952:1:19", + "nodeType": "YulLiteral", + "src": "3952:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3955:4:19", + "nodeType": "YulLiteral", + "src": "3955:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3942:9:19", + "nodeType": "YulIdentifier", + "src": "3942:9:19" + }, + "nativeSrc": "3942:18:19", + "nodeType": "YulFunctionCall", + "src": "3942:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3934:4:19", + "nodeType": "YulIdentifier", + "src": "3934:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3826:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3867:3:19", + "nodeType": "YulTypedName", + "src": "3867:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3875:4:19", + "nodeType": "YulTypedName", + "src": "3875:4:19", + "type": "" + } + ], + "src": "3826:141:19" + }, + { + "body": { + "nativeSrc": "4017:49:19", + "nodeType": "YulBlock", + "src": "4017:49:19", + "statements": [ + { + "nativeSrc": "4027:33:19", + "nodeType": "YulAssignment", + "src": "4027:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4045:5:19", + "nodeType": "YulIdentifier", + "src": "4045:5:19" + }, + { + "kind": "number", + "nativeSrc": "4052:2:19", + "nodeType": "YulLiteral", + "src": "4052:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4041:3:19", + "nodeType": "YulIdentifier", + "src": "4041:3:19" + }, + "nativeSrc": "4041:14:19", + "nodeType": "YulFunctionCall", + "src": "4041:14:19" + }, + { + "kind": "number", + "nativeSrc": "4057:2:19", + "nodeType": "YulLiteral", + "src": "4057:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4037:3:19", + "nodeType": "YulIdentifier", + "src": "4037:3:19" + }, + "nativeSrc": "4037:23:19", + "nodeType": "YulFunctionCall", + "src": "4037:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4027:6:19", + "nodeType": "YulIdentifier", + "src": "4027:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3973:93:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4000:5:19", + "nodeType": "YulTypedName", + "src": "4000:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4010:6:19", + "nodeType": "YulTypedName", + "src": "4010:6:19", + "type": "" + } + ], + "src": "3973:93:19" + }, + { + "body": { + "nativeSrc": "4125:54:19", + "nodeType": "YulBlock", + "src": "4125:54:19", + "statements": [ + { + "nativeSrc": "4135:37:19", + "nodeType": "YulAssignment", + "src": "4135:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4160:4:19", + "nodeType": "YulIdentifier", + "src": "4160:4:19" + }, + { + "name": "value", + "nativeSrc": "4166:5:19", + "nodeType": "YulIdentifier", + "src": "4166:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4156:3:19", + "nodeType": "YulIdentifier", + "src": "4156:3:19" + }, + "nativeSrc": "4156:16:19", + "nodeType": "YulFunctionCall", + "src": "4156:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4135:8:19", + "nodeType": "YulIdentifier", + "src": "4135:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4072:107:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4100:4:19", + "nodeType": "YulTypedName", + "src": "4100:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4106:5:19", + "nodeType": "YulTypedName", + "src": "4106:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4116:8:19", + "nodeType": "YulTypedName", + "src": "4116:8:19", + "type": "" + } + ], + "src": "4072:107:19" + }, + { + "body": { + "nativeSrc": "4261:317:19", + "nodeType": "YulBlock", + "src": "4261:317:19", + "statements": [ + { + "nativeSrc": "4271:35:19", + "nodeType": "YulVariableDeclaration", + "src": "4271:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "4292:10:19", + "nodeType": "YulIdentifier", + "src": "4292:10:19" + }, + { + "kind": "number", + "nativeSrc": "4304:1:19", + "nodeType": "YulLiteral", + "src": "4304:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4288:3:19", + "nodeType": "YulIdentifier", + "src": "4288:3:19" + }, + "nativeSrc": "4288:18:19", + "nodeType": "YulFunctionCall", + "src": "4288:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4275:9:19", + "nodeType": "YulTypedName", + "src": "4275:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4315:109:19", + "nodeType": "YulVariableDeclaration", + "src": "4315:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4346:9:19", + "nodeType": "YulIdentifier", + "src": "4346:9:19" + }, + { + "kind": "number", + "nativeSrc": "4357:66:19", + "nodeType": "YulLiteral", + "src": "4357:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4327:18:19", + "nodeType": "YulIdentifier", + "src": "4327:18:19" + }, + "nativeSrc": "4327:97:19", + "nodeType": "YulFunctionCall", + "src": "4327:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4319:4:19", + "nodeType": "YulTypedName", + "src": "4319:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4433:51:19", + "nodeType": "YulAssignment", + "src": "4433:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4464:9:19", + "nodeType": "YulIdentifier", + "src": "4464:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "4475:8:19", + "nodeType": "YulIdentifier", + "src": "4475:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4445:18:19", + "nodeType": "YulIdentifier", + "src": "4445:18:19" + }, + "nativeSrc": "4445:39:19", + "nodeType": "YulFunctionCall", + "src": "4445:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "4433:8:19", + "nodeType": "YulIdentifier", + "src": "4433:8:19" + } + ] + }, + { + "nativeSrc": "4493:30:19", + "nodeType": "YulAssignment", + "src": "4493:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4506:5:19", + "nodeType": "YulIdentifier", + "src": "4506:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "4517:4:19", + "nodeType": "YulIdentifier", + "src": "4517:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4513:3:19", + "nodeType": "YulIdentifier", + "src": "4513:3:19" + }, + "nativeSrc": "4513:9:19", + "nodeType": "YulFunctionCall", + "src": "4513:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4502:3:19", + "nodeType": "YulIdentifier", + "src": "4502:3:19" + }, + "nativeSrc": "4502:21:19", + "nodeType": "YulFunctionCall", + "src": "4502:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4493:5:19", + "nodeType": "YulIdentifier", + "src": "4493:5:19" + } + ] + }, + { + "nativeSrc": "4532:40:19", + "nodeType": "YulAssignment", + "src": "4532:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4545:5:19", + "nodeType": "YulIdentifier", + "src": "4545:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "4556:8:19", + "nodeType": "YulIdentifier", + "src": "4556:8:19" + }, + { + "name": "mask", + "nativeSrc": "4566:4:19", + "nodeType": "YulIdentifier", + "src": "4566:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4552:3:19", + "nodeType": "YulIdentifier", + "src": "4552:3:19" + }, + "nativeSrc": "4552:19:19", + "nodeType": "YulFunctionCall", + "src": "4552:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4542:2:19", + "nodeType": "YulIdentifier", + "src": "4542:2:19" + }, + "nativeSrc": "4542:30:19", + "nodeType": "YulFunctionCall", + "src": "4542:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4532:6:19", + "nodeType": "YulIdentifier", + "src": "4532:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4185:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4222:5:19", + "nodeType": "YulTypedName", + "src": "4222:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "4229:10:19", + "nodeType": "YulTypedName", + "src": "4229:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4241:8:19", + "nodeType": "YulTypedName", + "src": "4241:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4254:6:19", + "nodeType": "YulTypedName", + "src": "4254:6:19", + "type": "" + } + ], + "src": "4185:393:19" + }, + { + "body": { + "nativeSrc": "4629:32:19", + "nodeType": "YulBlock", + "src": "4629:32:19", + "statements": [ + { + "nativeSrc": "4639:16:19", + "nodeType": "YulAssignment", + "src": "4639:16:19", + "value": { + "name": "value", + "nativeSrc": "4650:5:19", + "nodeType": "YulIdentifier", + "src": "4650:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4639:7:19", + "nodeType": "YulIdentifier", + "src": "4639:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "4584:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4611:5:19", + "nodeType": "YulTypedName", + "src": "4611:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4621:7:19", + "nodeType": "YulTypedName", + "src": "4621:7:19", + "type": "" + } + ], + "src": "4584:77:19" + }, + { + "body": { + "nativeSrc": "4699:28:19", + "nodeType": "YulBlock", + "src": "4699:28:19", + "statements": [ + { + "nativeSrc": "4709:12:19", + "nodeType": "YulAssignment", + "src": "4709:12:19", + "value": { + "name": "value", + "nativeSrc": "4716:5:19", + "nodeType": "YulIdentifier", + "src": "4716:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4709:3:19", + "nodeType": "YulIdentifier", + "src": "4709:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4667:60:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4685:5:19", + "nodeType": "YulTypedName", + "src": "4685:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4695:3:19", + "nodeType": "YulTypedName", + "src": "4695:3:19", + "type": "" + } + ], + "src": "4667:60:19" + }, + { + "body": { + "nativeSrc": "4793:82:19", + "nodeType": "YulBlock", + "src": "4793:82:19", + "statements": [ + { + "nativeSrc": "4803:66:19", + "nodeType": "YulAssignment", + "src": "4803:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4861:5:19", + "nodeType": "YulIdentifier", + "src": "4861:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4843:17:19", + "nodeType": "YulIdentifier", + "src": "4843:17:19" + }, + "nativeSrc": "4843:24:19", + "nodeType": "YulFunctionCall", + "src": "4843:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4834:8:19", + "nodeType": "YulIdentifier", + "src": "4834:8:19" + }, + "nativeSrc": "4834:34:19", + "nodeType": "YulFunctionCall", + "src": "4834:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4816:17:19", + "nodeType": "YulIdentifier", + "src": "4816:17:19" + }, + "nativeSrc": "4816:53:19", + "nodeType": "YulFunctionCall", + "src": "4816:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4803:9:19", + "nodeType": "YulIdentifier", + "src": "4803:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4733:142:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4773:5:19", + "nodeType": "YulTypedName", + "src": "4773:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4783:9:19", + "nodeType": "YulTypedName", + "src": "4783:9:19", + "type": "" + } + ], + "src": "4733:142:19" + }, + { + "body": { + "nativeSrc": "4928:28:19", + "nodeType": "YulBlock", + "src": "4928:28:19", + "statements": [ + { + "nativeSrc": "4938:12:19", + "nodeType": "YulAssignment", + "src": "4938:12:19", + "value": { + "name": "value", + "nativeSrc": "4945:5:19", + "nodeType": "YulIdentifier", + "src": "4945:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4938:3:19", + "nodeType": "YulIdentifier", + "src": "4938:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "4881:75:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4914:5:19", + "nodeType": "YulTypedName", + "src": "4914:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4924:3:19", + "nodeType": "YulTypedName", + "src": "4924:3:19", + "type": "" + } + ], + "src": "4881:75:19" + }, + { + "body": { + "nativeSrc": "5038:193:19", + "nodeType": "YulBlock", + "src": "5038:193:19", + "statements": [ + { + "nativeSrc": "5048:63:19", + "nodeType": "YulVariableDeclaration", + "src": "5048:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "5103:7:19", + "nodeType": "YulIdentifier", + "src": "5103:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5072:30:19", + "nodeType": "YulIdentifier", + "src": "5072:30:19" + }, + "nativeSrc": "5072:39:19", + "nodeType": "YulFunctionCall", + "src": "5072:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "5052:16:19", + "nodeType": "YulTypedName", + "src": "5052:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5127:4:19", + "nodeType": "YulIdentifier", + "src": "5127:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5167:4:19", + "nodeType": "YulIdentifier", + "src": "5167:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5161:5:19", + "nodeType": "YulIdentifier", + "src": "5161:5:19" + }, + "nativeSrc": "5161:11:19", + "nodeType": "YulFunctionCall", + "src": "5161:11:19" + }, + { + "name": "offset", + "nativeSrc": "5174:6:19", + "nodeType": "YulIdentifier", + "src": "5174:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5206:16:19", + "nodeType": "YulIdentifier", + "src": "5206:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5182:23:19", + "nodeType": "YulIdentifier", + "src": "5182:23:19" + }, + "nativeSrc": "5182:41:19", + "nodeType": "YulFunctionCall", + "src": "5182:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5133:27:19", + "nodeType": "YulIdentifier", + "src": "5133:27:19" + }, + "nativeSrc": "5133:91:19", + "nodeType": "YulFunctionCall", + "src": "5133:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5120:6:19", + "nodeType": "YulIdentifier", + "src": "5120:6:19" + }, + "nativeSrc": "5120:105:19", + "nodeType": "YulFunctionCall", + "src": "5120:105:19" + }, + "nativeSrc": "5120:105:19", + "nodeType": "YulExpressionStatement", + "src": "5120:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4962:269:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5015:4:19", + "nodeType": "YulTypedName", + "src": "5015:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5021:6:19", + "nodeType": "YulTypedName", + "src": "5021:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5029:7:19", + "nodeType": "YulTypedName", + "src": "5029:7:19", + "type": "" + } + ], + "src": "4962:269:19" + }, + { + "body": { + "nativeSrc": "5286:24:19", + "nodeType": "YulBlock", + "src": "5286:24:19", + "statements": [ + { + "nativeSrc": "5296:8:19", + "nodeType": "YulAssignment", + "src": "5296:8:19", + "value": { + "kind": "number", + "nativeSrc": "5303:1:19", + "nodeType": "YulLiteral", + "src": "5303:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5296:3:19", + "nodeType": "YulIdentifier", + "src": "5296:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5237:73:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5282:3:19", + "nodeType": "YulTypedName", + "src": "5282:3:19", + "type": "" + } + ], + "src": "5237:73:19" + }, + { + "body": { + "nativeSrc": "5369:136:19", + "nodeType": "YulBlock", + "src": "5369:136:19", + "statements": [ + { + "nativeSrc": "5379:46:19", + "nodeType": "YulVariableDeclaration", + "src": "5379:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5393:30:19", + "nodeType": "YulIdentifier", + "src": "5393:30:19" + }, + "nativeSrc": "5393:32:19", + "nodeType": "YulFunctionCall", + "src": "5393:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5383:6:19", + "nodeType": "YulTypedName", + "src": "5383:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5478:4:19", + "nodeType": "YulIdentifier", + "src": "5478:4:19" + }, + { + "name": "offset", + "nativeSrc": "5484:6:19", + "nodeType": "YulIdentifier", + "src": "5484:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "5492:6:19", + "nodeType": "YulIdentifier", + "src": "5492:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5434:43:19", + "nodeType": "YulIdentifier", + "src": "5434:43:19" + }, + "nativeSrc": "5434:65:19", + "nodeType": "YulFunctionCall", + "src": "5434:65:19" + }, + "nativeSrc": "5434:65:19", + "nodeType": "YulExpressionStatement", + "src": "5434:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5316:189:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5355:4:19", + "nodeType": "YulTypedName", + "src": "5355:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5361:6:19", + "nodeType": "YulTypedName", + "src": "5361:6:19", + "type": "" + } + ], + "src": "5316:189:19" + }, + { + "body": { + "nativeSrc": "5561:136:19", + "nodeType": "YulBlock", + "src": "5561:136:19", + "statements": [ + { + "body": { + "nativeSrc": "5628:63:19", + "nodeType": "YulBlock", + "src": "5628:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5672:5:19", + "nodeType": "YulIdentifier", + "src": "5672:5:19" + }, + { + "kind": "number", + "nativeSrc": "5679:1:19", + "nodeType": "YulLiteral", + "src": "5679:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5642:29:19", + "nodeType": "YulIdentifier", + "src": "5642:29:19" + }, + "nativeSrc": "5642:39:19", + "nodeType": "YulFunctionCall", + "src": "5642:39:19" + }, + "nativeSrc": "5642:39:19", + "nodeType": "YulExpressionStatement", + "src": "5642:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5581:5:19", + "nodeType": "YulIdentifier", + "src": "5581:5:19" + }, + { + "name": "end", + "nativeSrc": "5588:3:19", + "nodeType": "YulIdentifier", + "src": "5588:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5578:2:19", + "nodeType": "YulIdentifier", + "src": "5578:2:19" + }, + "nativeSrc": "5578:14:19", + "nodeType": "YulFunctionCall", + "src": "5578:14:19" + }, + "nativeSrc": "5571:120:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5593:26:19", + "nodeType": "YulBlock", + "src": "5593:26:19", + "statements": [ + { + "nativeSrc": "5595:22:19", + "nodeType": "YulAssignment", + "src": "5595:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5608:5:19", + "nodeType": "YulIdentifier", + "src": "5608:5:19" + }, + { + "kind": "number", + "nativeSrc": "5615:1:19", + "nodeType": "YulLiteral", + "src": "5615:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5604:3:19", + "nodeType": "YulIdentifier", + "src": "5604:3:19" + }, + "nativeSrc": "5604:13:19", + "nodeType": "YulFunctionCall", + "src": "5604:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5595:5:19", + "nodeType": "YulIdentifier", + "src": "5595:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5575:2:19", + "nodeType": "YulBlock", + "src": "5575:2:19", + "statements": [] + }, + "src": "5571:120:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5511:186:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "5549:5:19", + "nodeType": "YulTypedName", + "src": "5549:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5556:3:19", + "nodeType": "YulTypedName", + "src": "5556:3:19", + "type": "" + } + ], + "src": "5511:186:19" + }, + { + "body": { + "nativeSrc": "5782:464:19", + "nodeType": "YulBlock", + "src": "5782:464:19", + "statements": [ + { + "body": { + "nativeSrc": "5808:431:19", + "nodeType": "YulBlock", + "src": "5808:431:19", + "statements": [ + { + "nativeSrc": "5822:54:19", + "nodeType": "YulVariableDeclaration", + "src": "5822:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5870:5:19", + "nodeType": "YulIdentifier", + "src": "5870:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5838:31:19", + "nodeType": "YulIdentifier", + "src": "5838:31:19" + }, + "nativeSrc": "5838:38:19", + "nodeType": "YulFunctionCall", + "src": "5838:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5826:8:19", + "nodeType": "YulTypedName", + "src": "5826:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5889:63:19", + "nodeType": "YulVariableDeclaration", + "src": "5889:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5912:8:19", + "nodeType": "YulIdentifier", + "src": "5912:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5940:10:19", + "nodeType": "YulIdentifier", + "src": "5940:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5922:17:19", + "nodeType": "YulIdentifier", + "src": "5922:17:19" + }, + "nativeSrc": "5922:29:19", + "nodeType": "YulFunctionCall", + "src": "5922:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5908:3:19", + "nodeType": "YulIdentifier", + "src": "5908:3:19" + }, + "nativeSrc": "5908:44:19", + "nodeType": "YulFunctionCall", + "src": "5908:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5893:11:19", + "nodeType": "YulTypedName", + "src": "5893:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6109:27:19", + "nodeType": "YulBlock", + "src": "6109:27:19", + "statements": [ + { + "nativeSrc": "6111:23:19", + "nodeType": "YulAssignment", + "src": "6111:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "6126:8:19", + "nodeType": "YulIdentifier", + "src": "6126:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6111:11:19", + "nodeType": "YulIdentifier", + "src": "6111:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6093:10:19", + "nodeType": "YulIdentifier", + "src": "6093:10:19" + }, + { + "kind": "number", + "nativeSrc": "6105:2:19", + "nodeType": "YulLiteral", + "src": "6105:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6090:2:19", + "nodeType": "YulIdentifier", + "src": "6090:2:19" + }, + "nativeSrc": "6090:18:19", + "nodeType": "YulFunctionCall", + "src": "6090:18:19" + }, + "nativeSrc": "6087:49:19", + "nodeType": "YulIf", + "src": "6087:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6178:11:19", + "nodeType": "YulIdentifier", + "src": "6178:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6195:8:19", + "nodeType": "YulIdentifier", + "src": "6195:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6223:3:19", + "nodeType": "YulIdentifier", + "src": "6223:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6205:17:19", + "nodeType": "YulIdentifier", + "src": "6205:17:19" + }, + "nativeSrc": "6205:22:19", + "nodeType": "YulFunctionCall", + "src": "6205:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6191:3:19", + "nodeType": "YulIdentifier", + "src": "6191:3:19" + }, + "nativeSrc": "6191:37:19", + "nodeType": "YulFunctionCall", + "src": "6191:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6149:28:19", + "nodeType": "YulIdentifier", + "src": "6149:28:19" + }, + "nativeSrc": "6149:80:19", + "nodeType": "YulFunctionCall", + "src": "6149:80:19" + }, + "nativeSrc": "6149:80:19", + "nodeType": "YulExpressionStatement", + "src": "6149:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "5799:3:19", + "nodeType": "YulIdentifier", + "src": "5799:3:19" + }, + { + "kind": "number", + "nativeSrc": "5804:2:19", + "nodeType": "YulLiteral", + "src": "5804:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5796:2:19", + "nodeType": "YulIdentifier", + "src": "5796:2:19" + }, + "nativeSrc": "5796:11:19", + "nodeType": "YulFunctionCall", + "src": "5796:11:19" + }, + "nativeSrc": "5793:446:19", + "nodeType": "YulIf", + "src": "5793:446:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5703:543:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "5758:5:19", + "nodeType": "YulTypedName", + "src": "5758:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "5765:3:19", + "nodeType": "YulTypedName", + "src": "5765:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "5770:10:19", + "nodeType": "YulTypedName", + "src": "5770:10:19", + "type": "" + } + ], + "src": "5703:543:19" + }, + { + "body": { + "nativeSrc": "6315:54:19", + "nodeType": "YulBlock", + "src": "6315:54:19", + "statements": [ + { + "nativeSrc": "6325:37:19", + "nodeType": "YulAssignment", + "src": "6325:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "6350:4:19", + "nodeType": "YulIdentifier", + "src": "6350:4:19" + }, + { + "name": "value", + "nativeSrc": "6356:5:19", + "nodeType": "YulIdentifier", + "src": "6356:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "6346:3:19", + "nodeType": "YulIdentifier", + "src": "6346:3:19" + }, + "nativeSrc": "6346:16:19", + "nodeType": "YulFunctionCall", + "src": "6346:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "6325:8:19", + "nodeType": "YulIdentifier", + "src": "6325:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6252:117:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "6290:4:19", + "nodeType": "YulTypedName", + "src": "6290:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "6296:5:19", + "nodeType": "YulTypedName", + "src": "6296:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "6306:8:19", + "nodeType": "YulTypedName", + "src": "6306:8:19", + "type": "" + } + ], + "src": "6252:117:19" + }, + { + "body": { + "nativeSrc": "6426:118:19", + "nodeType": "YulBlock", + "src": "6426:118:19", + "statements": [ + { + "nativeSrc": "6436:68:19", + "nodeType": "YulVariableDeclaration", + "src": "6436:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6485:1:19", + "nodeType": "YulLiteral", + "src": "6485:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6488:5:19", + "nodeType": "YulIdentifier", + "src": "6488:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6481:3:19", + "nodeType": "YulIdentifier", + "src": "6481:3:19" + }, + "nativeSrc": "6481:13:19", + "nodeType": "YulFunctionCall", + "src": "6481:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6500:1:19", + "nodeType": "YulLiteral", + "src": "6500:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6496:3:19", + "nodeType": "YulIdentifier", + "src": "6496:3:19" + }, + "nativeSrc": "6496:6:19", + "nodeType": "YulFunctionCall", + "src": "6496:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6452:28:19", + "nodeType": "YulIdentifier", + "src": "6452:28:19" + }, + "nativeSrc": "6452:51:19", + "nodeType": "YulFunctionCall", + "src": "6452:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6448:3:19", + "nodeType": "YulIdentifier", + "src": "6448:3:19" + }, + "nativeSrc": "6448:56:19", + "nodeType": "YulFunctionCall", + "src": "6448:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "6440:4:19", + "nodeType": "YulTypedName", + "src": "6440:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "6513:25:19", + "nodeType": "YulAssignment", + "src": "6513:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6527:4:19", + "nodeType": "YulIdentifier", + "src": "6527:4:19" + }, + { + "name": "mask", + "nativeSrc": "6533:4:19", + "nodeType": "YulIdentifier", + "src": "6533:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6523:3:19", + "nodeType": "YulIdentifier", + "src": "6523:3:19" + }, + "nativeSrc": "6523:15:19", + "nodeType": "YulFunctionCall", + "src": "6523:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6513:6:19", + "nodeType": "YulIdentifier", + "src": "6513:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "6375:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6403:4:19", + "nodeType": "YulTypedName", + "src": "6403:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "6409:5:19", + "nodeType": "YulTypedName", + "src": "6409:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6419:6:19", + "nodeType": "YulTypedName", + "src": "6419:6:19", + "type": "" + } + ], + "src": "6375:169:19" + }, + { + "body": { + "nativeSrc": "6630:214:19", + "nodeType": "YulBlock", + "src": "6630:214:19", + "statements": [ + { + "nativeSrc": "6763:37:19", + "nodeType": "YulAssignment", + "src": "6763:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6790:4:19", + "nodeType": "YulIdentifier", + "src": "6790:4:19" + }, + { + "name": "len", + "nativeSrc": "6796:3:19", + "nodeType": "YulIdentifier", + "src": "6796:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "6771:18:19", + "nodeType": "YulIdentifier", + "src": "6771:18:19" + }, + "nativeSrc": "6771:29:19", + "nodeType": "YulFunctionCall", + "src": "6771:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "6763:4:19", + "nodeType": "YulIdentifier", + "src": "6763:4:19" + } + ] + }, + { + "nativeSrc": "6809:29:19", + "nodeType": "YulAssignment", + "src": "6809:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6820:4:19", + "nodeType": "YulIdentifier", + "src": "6820:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6830:1:19", + "nodeType": "YulLiteral", + "src": "6830:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6833:3:19", + "nodeType": "YulIdentifier", + "src": "6833:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6826:3:19", + "nodeType": "YulIdentifier", + "src": "6826:3:19" + }, + "nativeSrc": "6826:11:19", + "nodeType": "YulFunctionCall", + "src": "6826:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6817:2:19", + "nodeType": "YulIdentifier", + "src": "6817:2:19" + }, + "nativeSrc": "6817:21:19", + "nodeType": "YulFunctionCall", + "src": "6817:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "6809:4:19", + "nodeType": "YulIdentifier", + "src": "6809:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6549:295:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6611:4:19", + "nodeType": "YulTypedName", + "src": "6611:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "6617:3:19", + "nodeType": "YulTypedName", + "src": "6617:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "6625:4:19", + "nodeType": "YulTypedName", + "src": "6625:4:19", + "type": "" + } + ], + "src": "6549:295:19" + }, + { + "body": { + "nativeSrc": "6941:1303:19", + "nodeType": "YulBlock", + "src": "6941:1303:19", + "statements": [ + { + "nativeSrc": "6952:51:19", + "nodeType": "YulVariableDeclaration", + "src": "6952:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6999:3:19", + "nodeType": "YulIdentifier", + "src": "6999:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6966:32:19", + "nodeType": "YulIdentifier", + "src": "6966:32:19" + }, + "nativeSrc": "6966:37:19", + "nodeType": "YulFunctionCall", + "src": "6966:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6956:6:19", + "nodeType": "YulTypedName", + "src": "6956:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7088:22:19", + "nodeType": "YulBlock", + "src": "7088:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7090:16:19", + "nodeType": "YulIdentifier", + "src": "7090:16:19" + }, + "nativeSrc": "7090:18:19", + "nodeType": "YulFunctionCall", + "src": "7090:18:19" + }, + "nativeSrc": "7090:18:19", + "nodeType": "YulExpressionStatement", + "src": "7090:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7060:6:19", + "nodeType": "YulIdentifier", + "src": "7060:6:19" + }, + { + "kind": "number", + "nativeSrc": "7068:18:19", + "nodeType": "YulLiteral", + "src": "7068:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7057:2:19", + "nodeType": "YulIdentifier", + "src": "7057:2:19" + }, + "nativeSrc": "7057:30:19", + "nodeType": "YulFunctionCall", + "src": "7057:30:19" + }, + "nativeSrc": "7054:56:19", + "nodeType": "YulIf", + "src": "7054:56:19" + }, + { + "nativeSrc": "7120:52:19", + "nodeType": "YulVariableDeclaration", + "src": "7120:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7166:4:19", + "nodeType": "YulIdentifier", + "src": "7166:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "7160:5:19", + "nodeType": "YulIdentifier", + "src": "7160:5:19" + }, + "nativeSrc": "7160:11:19", + "nodeType": "YulFunctionCall", + "src": "7160:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7134:25:19", + "nodeType": "YulIdentifier", + "src": "7134:25:19" + }, + "nativeSrc": "7134:38:19", + "nodeType": "YulFunctionCall", + "src": "7134:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7124:6:19", + "nodeType": "YulTypedName", + "src": "7124:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7265:4:19", + "nodeType": "YulIdentifier", + "src": "7265:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "7271:6:19", + "nodeType": "YulIdentifier", + "src": "7271:6:19" + }, + { + "name": "newLen", + "nativeSrc": "7279:6:19", + "nodeType": "YulIdentifier", + "src": "7279:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7219:45:19", + "nodeType": "YulIdentifier", + "src": "7219:45:19" + }, + "nativeSrc": "7219:67:19", + "nodeType": "YulFunctionCall", + "src": "7219:67:19" + }, + "nativeSrc": "7219:67:19", + "nodeType": "YulExpressionStatement", + "src": "7219:67:19" + }, + { + "nativeSrc": "7296:18:19", + "nodeType": "YulVariableDeclaration", + "src": "7296:18:19", + "value": { + "kind": "number", + "nativeSrc": "7313:1:19", + "nodeType": "YulLiteral", + "src": "7313:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7300:9:19", + "nodeType": "YulTypedName", + "src": "7300:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7324:17:19", + "nodeType": "YulAssignment", + "src": "7324:17:19", + "value": { + "kind": "number", + "nativeSrc": "7337:4:19", + "nodeType": "YulLiteral", + "src": "7337:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7324:9:19", + "nodeType": "YulIdentifier", + "src": "7324:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7388:611:19", + "nodeType": "YulBlock", + "src": "7388:611:19", + "statements": [ + { + "nativeSrc": "7402:37:19", + "nodeType": "YulVariableDeclaration", + "src": "7402:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7421:6:19", + "nodeType": "YulIdentifier", + "src": "7421:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7433:4:19", + "nodeType": "YulLiteral", + "src": "7433:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7429:3:19", + "nodeType": "YulIdentifier", + "src": "7429:3:19" + }, + "nativeSrc": "7429:9:19", + "nodeType": "YulFunctionCall", + "src": "7429:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7417:3:19", + "nodeType": "YulIdentifier", + "src": "7417:3:19" + }, + "nativeSrc": "7417:22:19", + "nodeType": "YulFunctionCall", + "src": "7417:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7406:7:19", + "nodeType": "YulTypedName", + "src": "7406:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7453:51:19", + "nodeType": "YulVariableDeclaration", + "src": "7453:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7499:4:19", + "nodeType": "YulIdentifier", + "src": "7499:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7467:31:19", + "nodeType": "YulIdentifier", + "src": "7467:31:19" + }, + "nativeSrc": "7467:37:19", + "nodeType": "YulFunctionCall", + "src": "7467:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7457:6:19", + "nodeType": "YulTypedName", + "src": "7457:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7517:10:19", + "nodeType": "YulVariableDeclaration", + "src": "7517:10:19", + "value": { + "kind": "number", + "nativeSrc": "7526:1:19", + "nodeType": "YulLiteral", + "src": "7526:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7521:1:19", + "nodeType": "YulTypedName", + "src": "7521:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7585:163:19", + "nodeType": "YulBlock", + "src": "7585:163:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7610:6:19", + "nodeType": "YulIdentifier", + "src": "7610:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7628:3:19", + "nodeType": "YulIdentifier", + "src": "7628:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "7633:9:19", + "nodeType": "YulIdentifier", + "src": "7633:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7624:3:19", + "nodeType": "YulIdentifier", + "src": "7624:3:19" + }, + "nativeSrc": "7624:19:19", + "nodeType": "YulFunctionCall", + "src": "7624:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7618:5:19", + "nodeType": "YulIdentifier", + "src": "7618:5:19" + }, + "nativeSrc": "7618:26:19", + "nodeType": "YulFunctionCall", + "src": "7618:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7603:6:19", + "nodeType": "YulIdentifier", + "src": "7603:6:19" + }, + "nativeSrc": "7603:42:19", + "nodeType": "YulFunctionCall", + "src": "7603:42:19" + }, + "nativeSrc": "7603:42:19", + "nodeType": "YulExpressionStatement", + "src": "7603:42:19" + }, + { + "nativeSrc": "7662:24:19", + "nodeType": "YulAssignment", + "src": "7662:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7676:6:19", + "nodeType": "YulIdentifier", + "src": "7676:6:19" + }, + { + "kind": "number", + "nativeSrc": "7684:1:19", + "nodeType": "YulLiteral", + "src": "7684:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7672:3:19", + "nodeType": "YulIdentifier", + "src": "7672:3:19" + }, + "nativeSrc": "7672:14:19", + "nodeType": "YulFunctionCall", + "src": "7672:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7662:6:19", + "nodeType": "YulIdentifier", + "src": "7662:6:19" + } + ] + }, + { + "nativeSrc": "7703:31:19", + "nodeType": "YulAssignment", + "src": "7703:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7720:9:19", + "nodeType": "YulIdentifier", + "src": "7720:9:19" + }, + { + "kind": "number", + "nativeSrc": "7731:2:19", + "nodeType": "YulLiteral", + "src": "7731:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7716:3:19", + "nodeType": "YulIdentifier", + "src": "7716:3:19" + }, + "nativeSrc": "7716:18:19", + "nodeType": "YulFunctionCall", + "src": "7716:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7703:9:19", + "nodeType": "YulIdentifier", + "src": "7703:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7551:1:19", + "nodeType": "YulIdentifier", + "src": "7551:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "7554:7:19", + "nodeType": "YulIdentifier", + "src": "7554:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7548:2:19", + "nodeType": "YulIdentifier", + "src": "7548:2:19" + }, + "nativeSrc": "7548:14:19", + "nodeType": "YulFunctionCall", + "src": "7548:14:19" + }, + "nativeSrc": "7540:208:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7563:21:19", + "nodeType": "YulBlock", + "src": "7563:21:19", + "statements": [ + { + "nativeSrc": "7565:17:19", + "nodeType": "YulAssignment", + "src": "7565:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7574:1:19", + "nodeType": "YulIdentifier", + "src": "7574:1:19" + }, + { + "kind": "number", + "nativeSrc": "7577:4:19", + "nodeType": "YulLiteral", + "src": "7577:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7570:3:19", + "nodeType": "YulIdentifier", + "src": "7570:3:19" + }, + "nativeSrc": "7570:12:19", + "nodeType": "YulFunctionCall", + "src": "7570:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7565:1:19", + "nodeType": "YulIdentifier", + "src": "7565:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7544:3:19", + "nodeType": "YulBlock", + "src": "7544:3:19", + "statements": [] + }, + "src": "7540:208:19" + }, + { + "body": { + "nativeSrc": "7784:156:19", + "nodeType": "YulBlock", + "src": "7784:156:19", + "statements": [ + { + "nativeSrc": "7802:43:19", + "nodeType": "YulVariableDeclaration", + "src": "7802:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7829:3:19", + "nodeType": "YulIdentifier", + "src": "7829:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "7834:9:19", + "nodeType": "YulIdentifier", + "src": "7834:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7825:3:19", + "nodeType": "YulIdentifier", + "src": "7825:3:19" + }, + "nativeSrc": "7825:19:19", + "nodeType": "YulFunctionCall", + "src": "7825:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7819:5:19", + "nodeType": "YulIdentifier", + "src": "7819:5:19" + }, + "nativeSrc": "7819:26:19", + "nodeType": "YulFunctionCall", + "src": "7819:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7806:9:19", + "nodeType": "YulTypedName", + "src": "7806:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7869:6:19", + "nodeType": "YulIdentifier", + "src": "7869:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7896:9:19", + "nodeType": "YulIdentifier", + "src": "7896:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7911:6:19", + "nodeType": "YulIdentifier", + "src": "7911:6:19" + }, + { + "kind": "number", + "nativeSrc": "7919:4:19", + "nodeType": "YulLiteral", + "src": "7919:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7907:3:19", + "nodeType": "YulIdentifier", + "src": "7907:3:19" + }, + "nativeSrc": "7907:17:19", + "nodeType": "YulFunctionCall", + "src": "7907:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7877:18:19", + "nodeType": "YulIdentifier", + "src": "7877:18:19" + }, + "nativeSrc": "7877:48:19", + "nodeType": "YulFunctionCall", + "src": "7877:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7862:6:19", + "nodeType": "YulIdentifier", + "src": "7862:6:19" + }, + "nativeSrc": "7862:64:19", + "nodeType": "YulFunctionCall", + "src": "7862:64:19" + }, + "nativeSrc": "7862:64:19", + "nodeType": "YulExpressionStatement", + "src": "7862:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7767:7:19", + "nodeType": "YulIdentifier", + "src": "7767:7:19" + }, + { + "name": "newLen", + "nativeSrc": "7776:6:19", + "nodeType": "YulIdentifier", + "src": "7776:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7764:2:19", + "nodeType": "YulIdentifier", + "src": "7764:2:19" + }, + "nativeSrc": "7764:19:19", + "nodeType": "YulFunctionCall", + "src": "7764:19:19" + }, + "nativeSrc": "7761:179:19", + "nodeType": "YulIf", + "src": "7761:179:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7960:4:19", + "nodeType": "YulIdentifier", + "src": "7960:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7974:6:19", + "nodeType": "YulIdentifier", + "src": "7974:6:19" + }, + { + "kind": "number", + "nativeSrc": "7982:1:19", + "nodeType": "YulLiteral", + "src": "7982:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7970:3:19", + "nodeType": "YulIdentifier", + "src": "7970:3:19" + }, + "nativeSrc": "7970:14:19", + "nodeType": "YulFunctionCall", + "src": "7970:14:19" + }, + { + "kind": "number", + "nativeSrc": "7986:1:19", + "nodeType": "YulLiteral", + "src": "7986:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7966:3:19", + "nodeType": "YulIdentifier", + "src": "7966:3:19" + }, + "nativeSrc": "7966:22:19", + "nodeType": "YulFunctionCall", + "src": "7966:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7953:6:19", + "nodeType": "YulIdentifier", + "src": "7953:6:19" + }, + "nativeSrc": "7953:36:19", + "nodeType": "YulFunctionCall", + "src": "7953:36:19" + }, + "nativeSrc": "7953:36:19", + "nodeType": "YulExpressionStatement", + "src": "7953:36:19" + } + ] + }, + "nativeSrc": "7381:618:19", + "nodeType": "YulCase", + "src": "7381:618:19", + "value": { + "kind": "number", + "nativeSrc": "7386:1:19", + "nodeType": "YulLiteral", + "src": "7386:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "8016:222:19", + "nodeType": "YulBlock", + "src": "8016:222:19", + "statements": [ + { + "nativeSrc": "8030:14:19", + "nodeType": "YulVariableDeclaration", + "src": "8030:14:19", + "value": { + "kind": "number", + "nativeSrc": "8043:1:19", + "nodeType": "YulLiteral", + "src": "8043:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8034:5:19", + "nodeType": "YulTypedName", + "src": "8034:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8067:67:19", + "nodeType": "YulBlock", + "src": "8067:67:19", + "statements": [ + { + "nativeSrc": "8085:35:19", + "nodeType": "YulAssignment", + "src": "8085:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8104:3:19", + "nodeType": "YulIdentifier", + "src": "8104:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "8109:9:19", + "nodeType": "YulIdentifier", + "src": "8109:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8100:3:19", + "nodeType": "YulIdentifier", + "src": "8100:3:19" + }, + "nativeSrc": "8100:19:19", + "nodeType": "YulFunctionCall", + "src": "8100:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8094:5:19", + "nodeType": "YulIdentifier", + "src": "8094:5:19" + }, + "nativeSrc": "8094:26:19", + "nodeType": "YulFunctionCall", + "src": "8094:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8085:5:19", + "nodeType": "YulIdentifier", + "src": "8085:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8060:6:19", + "nodeType": "YulIdentifier", + "src": "8060:6:19" + }, + "nativeSrc": "8057:77:19", + "nodeType": "YulIf", + "src": "8057:77:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8154:4:19", + "nodeType": "YulIdentifier", + "src": "8154:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8213:5:19", + "nodeType": "YulIdentifier", + "src": "8213:5:19" + }, + { + "name": "newLen", + "nativeSrc": "8220:6:19", + "nodeType": "YulIdentifier", + "src": "8220:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8160:52:19", + "nodeType": "YulIdentifier", + "src": "8160:52:19" + }, + "nativeSrc": "8160:67:19", + "nodeType": "YulFunctionCall", + "src": "8160:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8147:6:19", + "nodeType": "YulIdentifier", + "src": "8147:6:19" + }, + "nativeSrc": "8147:81:19", + "nodeType": "YulFunctionCall", + "src": "8147:81:19" + }, + "nativeSrc": "8147:81:19", + "nodeType": "YulExpressionStatement", + "src": "8147:81:19" + } + ] + }, + "nativeSrc": "8008:230:19", + "nodeType": "YulCase", + "src": "8008:230:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7361:6:19", + "nodeType": "YulIdentifier", + "src": "7361:6:19" + }, + { + "kind": "number", + "nativeSrc": "7369:2:19", + "nodeType": "YulLiteral", + "src": "7369:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7358:2:19", + "nodeType": "YulIdentifier", + "src": "7358:2:19" + }, + "nativeSrc": "7358:14:19", + "nodeType": "YulFunctionCall", + "src": "7358:14:19" + }, + "nativeSrc": "7351:887:19", + "nodeType": "YulSwitch", + "src": "7351:887:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6849:1395:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "6930:4:19", + "nodeType": "YulTypedName", + "src": "6930:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "6936:3:19", + "nodeType": "YulTypedName", + "src": "6936:3:19", + "type": "" + } + ], + "src": "6849:1395:19" + }, + { + "body": { + "nativeSrc": "8295:81:19", + "nodeType": "YulBlock", + "src": "8295:81:19", + "statements": [ + { + "nativeSrc": "8305:65:19", + "nodeType": "YulAssignment", + "src": "8305:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8320:5:19", + "nodeType": "YulIdentifier", + "src": "8320:5:19" + }, + { + "kind": "number", + "nativeSrc": "8327:42:19", + "nodeType": "YulLiteral", + "src": "8327:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8316:3:19", + "nodeType": "YulIdentifier", + "src": "8316:3:19" + }, + "nativeSrc": "8316:54:19", + "nodeType": "YulFunctionCall", + "src": "8316:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8305:7:19", + "nodeType": "YulIdentifier", + "src": "8305:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "8250:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8277:5:19", + "nodeType": "YulTypedName", + "src": "8277:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8287:7:19", + "nodeType": "YulTypedName", + "src": "8287:7:19", + "type": "" + } + ], + "src": "8250:126:19" + }, + { + "body": { + "nativeSrc": "8427:51:19", + "nodeType": "YulBlock", + "src": "8427:51:19", + "statements": [ + { + "nativeSrc": "8437:35:19", + "nodeType": "YulAssignment", + "src": "8437:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8466:5:19", + "nodeType": "YulIdentifier", + "src": "8466:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "8448:17:19", + "nodeType": "YulIdentifier", + "src": "8448:17:19" + }, + "nativeSrc": "8448:24:19", + "nodeType": "YulFunctionCall", + "src": "8448:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8437:7:19", + "nodeType": "YulIdentifier", + "src": "8437:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "8382:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8409:5:19", + "nodeType": "YulTypedName", + "src": "8409:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8419:7:19", + "nodeType": "YulTypedName", + "src": "8419:7:19", + "type": "" + } + ], + "src": "8382:96:19" + }, + { + "body": { + "nativeSrc": "8549:53:19", + "nodeType": "YulBlock", + "src": "8549:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8566:3:19", + "nodeType": "YulIdentifier", + "src": "8566:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8589:5:19", + "nodeType": "YulIdentifier", + "src": "8589:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "8571:17:19", + "nodeType": "YulIdentifier", + "src": "8571:17:19" + }, + "nativeSrc": "8571:24:19", + "nodeType": "YulFunctionCall", + "src": "8571:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8559:6:19", + "nodeType": "YulIdentifier", + "src": "8559:6:19" + }, + "nativeSrc": "8559:37:19", + "nodeType": "YulFunctionCall", + "src": "8559:37:19" + }, + "nativeSrc": "8559:37:19", + "nodeType": "YulExpressionStatement", + "src": "8559:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8484:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8537:5:19", + "nodeType": "YulTypedName", + "src": "8537:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8544:3:19", + "nodeType": "YulTypedName", + "src": "8544:3:19", + "type": "" + } + ], + "src": "8484:118:19" + }, + { + "body": { + "nativeSrc": "8706:124:19", + "nodeType": "YulBlock", + "src": "8706:124:19", + "statements": [ + { + "nativeSrc": "8716:26:19", + "nodeType": "YulAssignment", + "src": "8716:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8728:9:19", + "nodeType": "YulIdentifier", + "src": "8728:9:19" + }, + { + "kind": "number", + "nativeSrc": "8739:2:19", + "nodeType": "YulLiteral", + "src": "8739:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8724:3:19", + "nodeType": "YulIdentifier", + "src": "8724:3:19" + }, + "nativeSrc": "8724:18:19", + "nodeType": "YulFunctionCall", + "src": "8724:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8716:4:19", + "nodeType": "YulIdentifier", + "src": "8716:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8796:6:19", + "nodeType": "YulIdentifier", + "src": "8796:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8809:9:19", + "nodeType": "YulIdentifier", + "src": "8809:9:19" + }, + { + "kind": "number", + "nativeSrc": "8820:1:19", + "nodeType": "YulLiteral", + "src": "8820:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8805:3:19", + "nodeType": "YulIdentifier", + "src": "8805:3:19" + }, + "nativeSrc": "8805:17:19", + "nodeType": "YulFunctionCall", + "src": "8805:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8752:43:19", + "nodeType": "YulIdentifier", + "src": "8752:43:19" + }, + "nativeSrc": "8752:71:19", + "nodeType": "YulFunctionCall", + "src": "8752:71:19" + }, + "nativeSrc": "8752:71:19", + "nodeType": "YulExpressionStatement", + "src": "8752:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "8608:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8678:9:19", + "nodeType": "YulTypedName", + "src": "8678:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8690:6:19", + "nodeType": "YulTypedName", + "src": "8690:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8701:4:19", + "nodeType": "YulTypedName", + "src": "8701:4:19", + "type": "" + } + ], + "src": "8608:222:19" + } + ] + }, + "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_with_cleanup(src, dst, length) {\n\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 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_with_cleanup(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 abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { 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 function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\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 function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_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}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060405161351e38038061351e8339818101604052810190610032919061039c565b336040518060400160405280600781526020017f436f72654e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f434f52450000000000000000000000000000000000000000000000000000000081525081600090816100ae9190610606565b5080600190816100be9190610606565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101335760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161012a9190610719565b60405180910390fd5b6101428161016160201b60201c565b5080600d90816101529190610606565b506000600c8190555050610734565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61028e82610245565b810181811067ffffffffffffffff821117156102ad576102ac610256565b5b80604052505050565b60006102c0610227565b90506102cc8282610285565b919050565b600067ffffffffffffffff8211156102ec576102eb610256565b5b6102f582610245565b9050602081019050919050565b60005b83811015610320578082015181840152602081019050610305565b60008484015250505050565b600061033f61033a846102d1565b6102b6565b90508281526020810184848401111561035b5761035a610240565b5b610366848285610302565b509392505050565b600082601f8301126103835761038261023b565b5b815161039384826020860161032c565b91505092915050565b6000602082840312156103b2576103b1610231565b5b600082015167ffffffffffffffff8111156103d0576103cf610236565b5b6103dc8482850161036e565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061043757607f821691505b60208210810361044a576104496103f0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610475565b6104bc8683610475565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006105036104fe6104f9846104d4565b6104de565b6104d4565b9050919050565b6000819050919050565b61051d836104e8565b6105316105298261050a565b848454610482565b825550505050565b600090565b610546610539565b610551818484610514565b505050565b5b818110156105755761056a60008261053e565b600181019050610557565b5050565b601f8211156105ba5761058b81610450565b61059484610465565b810160208510156105a3578190505b6105b76105af85610465565b830182610556565b50505b505050565b600082821c905092915050565b60006105dd600019846008026105bf565b1980831691505092915050565b60006105f683836105cc565b9150826002028217905092915050565b61060f826103e5565b67ffffffffffffffff81111561062857610627610256565b5b610632825461041f565b61063d828285610579565b600060209050601f831160018114610670576000841561065e578287015190505b61066885826105ea565b8655506106d0565b601f19841661067e86610450565b60005b828110156106a657848901518255600182019150602085019450602081019050610681565b868310156106c357848901516106bf601f8916826105cc565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610703826106d8565b9050919050565b610713816106f8565b82525050565b600060208201905061072e600083018461070a565b92915050565b612ddb806107436000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806356189236116100b857806395d89b411161007c57806395d89b4114610375578063a22cb46514610393578063b88d4fde146103af578063c87b56dd146103cb578063e985e9c5146103fb578063f2fde38b1461042b57610142565b806356189236146102cf5780636352211e146102ed57806370a082311461031d578063715018a61461034d5780638da5cb5b1461035757610142565b806323b872dd1161010a57806323b872dd146101ff5780632f745c591461021b57806340d097c31461024b57806342842e0e146102675780634f6ccce71461028357806355f804b3146102b357610142565b806301ffc9a71461014757806306fdde0314610177578063081812fc14610195578063095ea7b3146101c557806318160ddd146101e1575b600080fd5b610161600480360381019061015c919061213b565b610447565b60405161016e9190612183565b60405180910390f35b61017f610459565b60405161018c919061222e565b60405180910390f35b6101af60048036038101906101aa9190612286565b6104eb565b6040516101bc91906122f4565b60405180910390f35b6101df60048036038101906101da919061233b565b610507565b005b6101e961051d565b6040516101f6919061238a565b60405180910390f35b610219600480360381019061021491906123a5565b61052a565b005b6102356004803603810190610230919061233b565b61062c565b604051610242919061238a565b60405180910390f35b610265600480360381019061026091906123f8565b6106d5565b005b610281600480360381019061027c91906123a5565b610737565b005b61029d60048036038101906102989190612286565b610757565b6040516102aa919061238a565b60405180910390f35b6102cd60048036038101906102c8919061255a565b6107cd565b005b6102d76107e8565b6040516102e4919061238a565b60405180910390f35b61030760048036038101906103029190612286565b6107f2565b60405161031491906122f4565b60405180910390f35b610337600480360381019061033291906123f8565b610804565b604051610344919061238a565b60405180910390f35b6103556108be565b005b61035f6108d2565b60405161036c91906122f4565b60405180910390f35b61037d6108fc565b60405161038a919061222e565b60405180910390f35b6103ad60048036038101906103a891906125cf565b61098e565b005b6103c960048036038101906103c491906126b0565b6109a4565b005b6103e560048036038101906103e09190612286565b6109c1565b6040516103f2919061222e565b60405180910390f35b61041560048036038101906104109190612733565b610a20565b6040516104229190612183565b60405180910390f35b610445600480360381019061044091906123f8565b610ab4565b005b600061045282610b3a565b9050919050565b606060008054610468906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610494906127a2565b80156104e15780601f106104b6576101008083540402835291602001916104e1565b820191906000526020600020905b8154815290600101906020018083116104c457829003601f168201915b5050505050905090565b60006104f682610b9b565b5061050082610c23565b9050919050565b6105198282610514610c60565b610c68565b5050565b6000600880549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361059c5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161059391906122f4565b60405180910390fd5b60006105b083836105ab610c60565b610c7a565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610626578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161061d939291906127d3565b60405180910390fd5b50505050565b600061063783610804565b821061067c5782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161067392919061280a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6106dd610c90565b6000600c60008154809291906106f290612862565b9190505590506107028282610d17565b6107338161070f83610d35565b60405160200161071f9190612932565b604051602081830303815290604052610e03565b5050565b610752838383604051806020016040528060008152506109a4565b505050565b600061076161051d565b82106107a7576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161079e92919061280a565b60405180910390fd5b600882815481106107bb576107ba612954565b5b90600052602060002001549050919050565b6107d5610c90565b80600d90816107e49190612b2f565b5050565b6000600c54905090565b60006107fd82610b9b565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108775760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161086e91906122f4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108c6610c90565b6108d06000610e5f565b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461090b906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610937906127a2565b80156109845780601f1061095957610100808354040283529160200191610984565b820191906000526020600020905b81548152906001019060200180831161096757829003601f168201915b5050505050905090565b6109a0610999610c60565b8383610f25565b5050565b6109af84848461052a565b6109bb84848484611094565b50505050565b606060006109cd61124b565b905060008151116109ed5760405180602001604052806000815250610a18565b806109f784610d35565b604051602001610a08929190612c01565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610abc610c90565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2e5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b2591906122f4565b60405180910390fd5b610b3781610e5f565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b945750610b93826112dd565b5b9050919050565b600080610ba783611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c1a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610c11919061238a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b610c758383836001611394565b505050565b6000610c87848484611559565b90509392505050565b610c98610c60565b73ffffffffffffffffffffffffffffffffffffffff16610cb66108d2565b73ffffffffffffffffffffffffffffffffffffffff1614610d1557610cd9610c60565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d0c91906122f4565b60405180910390fd5b565b610d31828260405180602001604052806000815250611676565b5050565b606060006001610d4484611692565b01905060008167ffffffffffffffff811115610d6357610d6261242f565b5b6040519080825280601f01601f191660200182016040528015610d955781602001600182028036833780820191505090505b509050600082602001820190505b600115610df8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610dec57610deb612c30565b5b04945060008503610da3575b819350505050919050565b80600a60008481526020019081526020016000209081610e239190612b2f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051610e53919061238a565b60405180910390a15050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9657816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610f8d91906122f4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110879190612183565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611245578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026110d8610c60565b8685856040518563ffffffff1660e01b81526004016110fa9493929190612cb4565b6020604051808303816000875af192505050801561113657506040513d601f19601f820116820180604052508101906111339190612d15565b60015b6111ba573d8060008114611166576040519150601f19603f3d011682016040523d82523d6000602084013e61116b565b606091505b5060008151036111b257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016111a991906122f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161123a91906122f4565b60405180910390fd5b505b50505050565b6060600d805461125a906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054611286906127a2565b80156112d35780601f106112a8576101008083540402835291602001916112d3565b820191906000526020600020905b8154815290600101906020018083116112b657829003601f168201915b5050505050905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611350575061134f826117e5565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806113cd5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115015760006113dd84610b9b565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561144857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561145b57506114598184610a20565b155b1561149d57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161149491906122f4565b60405180910390fd5b81156114ff57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806115678585856118c7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ab576115a684611ae1565b6115ea565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115e9576115e88185611b2a565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361162c5761162784611c8b565b61166b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461166a576116698585611d5c565b5b5b809150509392505050565b6116808383611de7565b61168d6000848484611094565b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106116f0577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116e6576116e5612c30565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061172d576d04ee2d6d415b85acef8100000000838161172357611722612c30565b5b0492506020810190505b662386f26fc10000831061175c57662386f26fc10000838161175257611751612c30565b5b0492506010810190505b6305f5e1008310611785576305f5e100838161177b5761177a612c30565b5b0492506008810190505b61271083106117aa5761271083816117a05761179f612c30565b5b0492506004810190505b606483106117cd57606483816117c3576117c2612c30565b5b0492506002810190505b600a83106117dc576001810190505b80915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118b057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118c057506118bf82611ee0565b5b9050919050565b6000806118d384611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461191557611914818486611f4a565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119a657611957600085600080611394565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611a29576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000611b3583610804565b9050600060076000848152602001908152602001600020549050818114611c1a576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050611c9f9190612d42565b9050600060096000848152602001908152602001600020549050600060088381548110611ccf57611cce612954565b5b906000526020600020015490508060088381548110611cf157611cf0612954565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480611d4057611d3f612d76565b5b6001900381819060005260206000200160009055905550505050565b60006001611d6984610804565b611d739190612d42565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e595760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e5091906122f4565b60405180910390fd5b6000611e6783836000610c7a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611edb5760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611ed291906122f4565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611f5583838361200e565b61200957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fca57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611fc1919061238a565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161200092919061280a565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208757506120868484610a20565b5b806120c557508273ffffffffffffffffffffffffffffffffffffffff166120ad83610c23565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612118816120e3565b811461212357600080fd5b50565b6000813590506121358161210f565b92915050565b600060208284031215612151576121506120d9565b5b600061215f84828501612126565b91505092915050565b60008115159050919050565b61217d81612168565b82525050565b60006020820190506121986000830184612174565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121d85780820151818401526020810190506121bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006122008261219e565b61220a81856121a9565b935061221a8185602086016121ba565b612223816121e4565b840191505092915050565b6000602082019050818103600083015261224881846121f5565b905092915050565b6000819050919050565b61226381612250565b811461226e57600080fd5b50565b6000813590506122808161225a565b92915050565b60006020828403121561229c5761229b6120d9565b5b60006122aa84828501612271565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122de826122b3565b9050919050565b6122ee816122d3565b82525050565b600060208201905061230960008301846122e5565b92915050565b612318816122d3565b811461232357600080fd5b50565b6000813590506123358161230f565b92915050565b60008060408385031215612352576123516120d9565b5b600061236085828601612326565b925050602061237185828601612271565b9150509250929050565b61238481612250565b82525050565b600060208201905061239f600083018461237b565b92915050565b6000806000606084860312156123be576123bd6120d9565b5b60006123cc86828701612326565b93505060206123dd86828701612326565b92505060406123ee86828701612271565b9150509250925092565b60006020828403121561240e5761240d6120d9565b5b600061241c84828501612326565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612467826121e4565b810181811067ffffffffffffffff821117156124865761248561242f565b5b80604052505050565b60006124996120cf565b90506124a5828261245e565b919050565b600067ffffffffffffffff8211156124c5576124c461242f565b5b6124ce826121e4565b9050602081019050919050565b82818337600083830152505050565b60006124fd6124f8846124aa565b61248f565b9050828152602081018484840111156125195761251861242a565b5b6125248482856124db565b509392505050565b600082601f83011261254157612540612425565b5b81356125518482602086016124ea565b91505092915050565b6000602082840312156125705761256f6120d9565b5b600082013567ffffffffffffffff81111561258e5761258d6120de565b5b61259a8482850161252c565b91505092915050565b6125ac81612168565b81146125b757600080fd5b50565b6000813590506125c9816125a3565b92915050565b600080604083850312156125e6576125e56120d9565b5b60006125f485828601612326565b9250506020612605858286016125ba565b9150509250929050565b600067ffffffffffffffff82111561262a5761262961242f565b5b612633826121e4565b9050602081019050919050565b600061265361264e8461260f565b61248f565b90508281526020810184848401111561266f5761266e61242a565b5b61267a8482856124db565b509392505050565b600082601f83011261269757612696612425565b5b81356126a7848260208601612640565b91505092915050565b600080600080608085870312156126ca576126c96120d9565b5b60006126d887828801612326565b94505060206126e987828801612326565b93505060406126fa87828801612271565b925050606085013567ffffffffffffffff81111561271b5761271a6120de565b5b61272787828801612682565b91505092959194509250565b6000806040838503121561274a576127496120d9565b5b600061275885828601612326565b925050602061276985828601612326565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127ba57607f821691505b6020821081036127cd576127cc612773565b5b50919050565b60006060820190506127e860008301866122e5565b6127f5602083018561237b565b61280260408301846122e5565b949350505050565b600060408201905061281f60008301856122e5565b61282c602083018461237b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061286d82612250565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289f5761289e612833565b5b600182019050919050565b600081905092915050565b60006128c08261219e565b6128ca81856128aa565b93506128da8185602086016121ba565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061291c6005836128aa565b9150612927826128e6565b600582019050919050565b600061293e82846128b5565b91506129498261290f565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026129e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826129a8565b6129ef86836129a8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612a2c612a27612a2284612250565b612a07565b612250565b9050919050565b6000819050919050565b612a4683612a11565b612a5a612a5282612a33565b8484546129b5565b825550505050565b600090565b612a6f612a62565b612a7a818484612a3d565b505050565b5b81811015612a9e57612a93600082612a67565b600181019050612a80565b5050565b601f821115612ae357612ab481612983565b612abd84612998565b81016020851015612acc578190505b612ae0612ad885612998565b830182612a7f565b50505b505050565b600082821c905092915050565b6000612b0660001984600802612ae8565b1980831691505092915050565b6000612b1f8383612af5565b9150826002028217905092915050565b612b388261219e565b67ffffffffffffffff811115612b5157612b5061242f565b5b612b5b82546127a2565b612b66828285612aa2565b600060209050601f831160018114612b995760008415612b87578287015190505b612b918582612b13565b865550612bf9565b601f198416612ba786612983565b60005b82811015612bcf57848901518255600182019150602085019450602081019050612baa565b86831015612bec5784890151612be8601f891682612af5565b8355505b6001600288020188555050505b505050505050565b6000612c0d82856128b5565b9150612c1982846128b5565b9150612c248261290f565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612c8682612c5f565b612c908185612c6a565b9350612ca08185602086016121ba565b612ca9816121e4565b840191505092915050565b6000608082019050612cc960008301876122e5565b612cd660208301866122e5565b612ce3604083018561237b565b8181036060830152612cf58184612c7b565b905095945050505050565b600081519050612d0f8161210f565b92915050565b600060208284031215612d2b57612d2a6120d9565b5b6000612d3984828501612d00565b91505092915050565b6000612d4d82612250565b9150612d5883612250565b9250828203905081811115612d7057612d6f612833565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220e742470774f454e660aa990254ed1f1d8f5271ffa5f567e4e79c7881bf12ea2064736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x351E CODESIZE SUB DUP1 PUSH2 0x351E DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x39C JUMP JUMPDEST CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436F72654E465400000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x434F524500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH2 0xAE SWAP2 SWAP1 PUSH2 0x606 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x606 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x133 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x142 DUP2 PUSH2 0x161 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0xD SWAP1 DUP2 PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x606 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xC DUP2 SWAP1 SSTORE POP POP PUSH2 0x734 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0xB 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 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 PUSH2 0x28E DUP3 PUSH2 0x245 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2AD JUMPI PUSH2 0x2AC PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0 PUSH2 0x227 JUMP JUMPDEST SWAP1 POP PUSH2 0x2CC DUP3 DUP3 PUSH2 0x285 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2EC JUMPI PUSH2 0x2EB PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH2 0x2F5 DUP3 PUSH2 0x245 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x320 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x305 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33F PUSH2 0x33A DUP5 PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x35B JUMPI PUSH2 0x35A PUSH2 0x240 JUMP JUMPDEST JUMPDEST PUSH2 0x366 DUP5 DUP3 DUP6 PUSH2 0x302 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x383 JUMPI PUSH2 0x382 PUSH2 0x23B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x393 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x32C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B2 JUMPI PUSH2 0x3B1 PUSH2 0x231 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3D0 JUMPI PUSH2 0x3CF PUSH2 0x236 JUMP JUMPDEST JUMPDEST PUSH2 0x3DC DUP5 DUP3 DUP6 ADD PUSH2 0x36E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD 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 0x437 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x44A JUMPI PUSH2 0x449 PUSH2 0x3F0 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 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 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x4B2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x475 JUMP JUMPDEST PUSH2 0x4BC DUP7 DUP4 PUSH2 0x475 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x503 PUSH2 0x4FE PUSH2 0x4F9 DUP5 PUSH2 0x4D4 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST PUSH2 0x4D4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51D DUP4 PUSH2 0x4E8 JUMP JUMPDEST PUSH2 0x531 PUSH2 0x529 DUP3 PUSH2 0x50A JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x482 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x546 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x551 DUP2 DUP5 DUP5 PUSH2 0x514 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x575 JUMPI PUSH2 0x56A PUSH1 0x0 DUP3 PUSH2 0x53E JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x557 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5BA JUMPI PUSH2 0x58B DUP2 PUSH2 0x450 JUMP JUMPDEST PUSH2 0x594 DUP5 PUSH2 0x465 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5A3 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x5B7 PUSH2 0x5AF DUP6 PUSH2 0x465 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x556 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DD PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5BF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F6 DUP4 DUP4 PUSH2 0x5CC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x60F DUP3 PUSH2 0x3E5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x628 JUMPI PUSH2 0x627 PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH2 0x632 DUP3 SLOAD PUSH2 0x41F JUMP JUMPDEST PUSH2 0x63D DUP3 DUP3 DUP6 PUSH2 0x579 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x670 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x65E JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x668 DUP6 DUP3 PUSH2 0x5EA JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x67E DUP7 PUSH2 0x450 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x6A6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x681 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x6C3 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x6BF PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5CC JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x703 DUP3 PUSH2 0x6D8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x713 DUP2 PUSH2 0x6F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x72E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x70A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DDB DUP1 PUSH2 0x743 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 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x56189236 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x42B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x56189236 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x357 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x40D097C3 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x2B3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x213B JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x459 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E9 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x235 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x230 SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x242 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0x6D5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x281 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27C SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AA SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x255A JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2D7 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x238A 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 0x2286 JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x22F4 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 0x23F8 JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x355 PUSH2 0x8BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x35F PUSH2 0x8D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37D PUSH2 0x8FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38A SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x25CF JUMP JUMPDEST PUSH2 0x98E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x9A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x415 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x2733 JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x445 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x440 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0xAB4 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH2 0x452 DUP3 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x468 SWAP1 PUSH2 0x27A2 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 0x494 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4E1 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 0x4C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F6 DUP3 PUSH2 0xB9B JUMP JUMPDEST POP PUSH2 0x500 DUP3 PUSH2 0xC23 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x519 DUP3 DUP3 PUSH2 0x514 PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC68 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x59C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5B0 DUP4 DUP4 PUSH2 0x5AB PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x626 JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x637 DUP4 PUSH2 0x804 JUMP JUMPDEST DUP3 LT PUSH2 0x67C JUMPI DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x673 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 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 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6DD PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x6F2 SWAP1 PUSH2 0x2862 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE SWAP1 POP PUSH2 0x702 DUP3 DUP3 PUSH2 0xD17 JUMP JUMPDEST PUSH2 0x733 DUP2 PUSH2 0x70F DUP4 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x2932 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xE03 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x752 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x9A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x761 PUSH2 0x51D JUMP JUMPDEST DUP3 LT PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x79E SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7D5 PUSH2 0xC90 JUMP JUMPDEST DUP1 PUSH1 0xD SWAP1 DUP2 PUSH2 0x7E4 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FD DUP3 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x877 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x86E SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0x8D0 PUSH1 0x0 PUSH2 0xE5F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x90B SWAP1 PUSH2 0x27A2 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 0x937 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x984 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x959 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x984 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 0x967 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9A0 PUSH2 0x999 PUSH2 0xC60 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xF25 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x9AF DUP5 DUP5 DUP5 PUSH2 0x52A JUMP JUMPDEST PUSH2 0x9BB DUP5 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9CD PUSH2 0x124B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x9ED JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xA18 JUMP JUMPDEST DUP1 PUSH2 0x9F7 DUP5 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA08 SWAP3 SWAP2 SWAP1 PUSH2 0x2C01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xABC PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB25 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB37 DUP2 PUSH2 0xE5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB94 JUMPI POP PUSH2 0xB93 DUP3 PUSH2 0x12DD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBA7 DUP4 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC1A JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC11 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC75 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1394 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC87 DUP5 DUP5 DUP5 PUSH2 0x1559 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC98 PUSH2 0xC60 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCB6 PUSH2 0x8D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD15 JUMPI PUSH2 0xCD9 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xD31 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1676 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0xD44 DUP5 PUSH2 0x1692 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD95 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xDF8 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0xDEC JUMPI PUSH2 0xDEB PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0xDA3 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0xE23 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE53 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0xB 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF96 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF8D SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1087 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1245 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x10D8 PUSH2 0xC60 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10FA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1136 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 0x1133 SWAP2 SWAP1 PUSH2 0x2D15 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11BA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1166 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x116B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x11B2 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A9 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1243 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123A SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xD DUP1 SLOAD PUSH2 0x125A SWAP1 PUSH2 0x27A2 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 0x1286 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12D3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12A8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12D3 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 0x12B6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x780E9D6300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1350 JUMPI POP PUSH2 0x134F DUP3 PUSH2 0x17E5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x13CD JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1501 JUMPI PUSH1 0x0 PUSH2 0x13DD DUP5 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1448 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x145B JUMPI POP PUSH2 0x1459 DUP2 DUP5 PUSH2 0xA20 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x149D JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1494 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x14FF JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1567 DUP6 DUP6 DUP6 PUSH2 0x18C7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AB JUMPI PUSH2 0x15A6 DUP5 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x15EA JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15E9 JUMPI PUSH2 0x15E8 DUP2 DUP6 PUSH2 0x1B2A JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x162C JUMPI PUSH2 0x1627 DUP5 PUSH2 0x1C8B JUMP JUMPDEST PUSH2 0x166B JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x166A JUMPI PUSH2 0x1669 DUP6 DUP6 PUSH2 0x1D5C JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1680 DUP4 DUP4 PUSH2 0x1DE7 JUMP JUMPDEST PUSH2 0x168D PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x16F0 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x16E6 JUMPI PUSH2 0x16E5 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x172D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1723 JUMPI PUSH2 0x1722 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x175C JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x1752 JUMPI PUSH2 0x1751 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1785 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x177B JUMPI PUSH2 0x177A PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x17AA JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x17A0 JUMPI PUSH2 0x179F PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x17CD JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x17DC JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x18B0 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x18C0 JUMPI POP PUSH2 0x18BF DUP3 PUSH2 0x1EE0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x18D3 DUP5 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1915 JUMPI PUSH2 0x1914 DUP2 DUP5 DUP7 PUSH2 0x1F4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19A6 JUMPI PUSH2 0x1957 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1394 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A29 JUMPI PUSH1 0x1 PUSH1 0x3 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x8 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B35 DUP4 PUSH2 0x804 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1C1A JUMPI PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH1 0x6 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 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x1C9F SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CCF JUMPI PUSH2 0x1CCE PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CF1 JUMPI PUSH2 0x1CF0 PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x9 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x2D76 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1D69 DUP5 PUSH2 0x804 JUMP JUMPDEST PUSH2 0x1D73 SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1E59 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E50 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E67 DUP4 DUP4 PUSH1 0x0 PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1EDB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ED2 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST 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 PUSH2 0x1F55 DUP4 DUP4 DUP4 PUSH2 0x200E JUMP JUMPDEST PUSH2 0x2009 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1FCA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FC1 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2000 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2087 JUMPI POP PUSH2 0x2086 DUP5 DUP5 PUSH2 0xA20 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x20C5 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x20AD DUP4 PUSH2 0xC23 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2118 DUP2 PUSH2 0x20E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2135 DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2150 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x215F DUP5 DUP3 DUP6 ADD PUSH2 0x2126 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x217D DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2198 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2174 JUMP JUMPDEST 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 0x21D8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x21BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2200 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x220A DUP2 DUP6 PUSH2 0x21A9 JUMP JUMPDEST SWAP4 POP PUSH2 0x221A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2223 DUP2 PUSH2 0x21E4 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 0x2248 DUP2 DUP5 PUSH2 0x21F5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2263 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP2 EQ PUSH2 0x226E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2280 DUP2 PUSH2 0x225A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH2 0x229B PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22AA DUP5 DUP3 DUP6 ADD PUSH2 0x2271 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 PUSH2 0x22DE DUP3 PUSH2 0x22B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EE DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2309 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2318 DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2335 DUP2 PUSH2 0x230F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2352 JUMPI PUSH2 0x2351 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2360 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2371 DUP6 DUP3 DUP7 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2384 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x239F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23CC DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x23DD DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x23EE DUP7 DUP3 DUP8 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240E JUMPI PUSH2 0x240D PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x241C DUP5 DUP3 DUP6 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2467 DUP3 PUSH2 0x21E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2486 JUMPI PUSH2 0x2485 PUSH2 0x242F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2499 PUSH2 0x20CF JUMP JUMPDEST SWAP1 POP PUSH2 0x24A5 DUP3 DUP3 PUSH2 0x245E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24C5 JUMPI PUSH2 0x24C4 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x24CE DUP3 PUSH2 0x21E4 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 0x24FD PUSH2 0x24F8 DUP5 PUSH2 0x24AA JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x2524 DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2541 JUMPI PUSH2 0x2540 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2551 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2570 JUMPI PUSH2 0x256F PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x258E JUMPI PUSH2 0x258D PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x259A DUP5 DUP3 DUP6 ADD PUSH2 0x252C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25AC DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP2 EQ PUSH2 0x25B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25C9 DUP2 PUSH2 0x25A3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E6 JUMPI PUSH2 0x25E5 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25F4 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2605 DUP6 DUP3 DUP7 ADD PUSH2 0x25BA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x262A JUMPI PUSH2 0x2629 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2633 DUP3 PUSH2 0x21E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2653 PUSH2 0x264E DUP5 PUSH2 0x260F JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x266F JUMPI PUSH2 0x266E PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x267A DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2697 JUMPI PUSH2 0x2696 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26A7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2640 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x26CA JUMPI PUSH2 0x26C9 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26D8 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x26E9 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x26FA DUP8 DUP3 DUP9 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271B JUMPI PUSH2 0x271A PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x2727 DUP8 DUP3 DUP9 ADD PUSH2 0x2682 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x274A JUMPI PUSH2 0x2749 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2758 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2769 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x27BA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27CD JUMPI PUSH2 0x27CC PUSH2 0x2773 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x27E8 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x27F5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST PUSH2 0x2802 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x281F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x282C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST 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 0x286D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x289F JUMPI PUSH2 0x289E PUSH2 0x2833 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C0 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x28CA DUP2 DUP6 PUSH2 0x28AA JUMP JUMPDEST SWAP4 POP PUSH2 0x28DA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291C PUSH1 0x5 DUP4 PUSH2 0x28AA JUMP JUMPDEST SWAP2 POP PUSH2 0x2927 DUP3 PUSH2 0x28E6 JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x293E DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2949 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x29E5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x29A8 JUMP JUMPDEST PUSH2 0x29EF DUP7 DUP4 PUSH2 0x29A8 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2C PUSH2 0x2A27 PUSH2 0x2A22 DUP5 PUSH2 0x2250 JUMP JUMPDEST PUSH2 0x2A07 JUMP JUMPDEST PUSH2 0x2250 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A46 DUP4 PUSH2 0x2A11 JUMP JUMPDEST PUSH2 0x2A5A PUSH2 0x2A52 DUP3 PUSH2 0x2A33 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x29B5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2A6F PUSH2 0x2A62 JUMP JUMPDEST PUSH2 0x2A7A DUP2 DUP5 DUP5 PUSH2 0x2A3D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A9E JUMPI PUSH2 0x2A93 PUSH1 0x0 DUP3 PUSH2 0x2A67 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2A80 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2AE3 JUMPI PUSH2 0x2AB4 DUP2 PUSH2 0x2983 JUMP JUMPDEST PUSH2 0x2ABD DUP5 PUSH2 0x2998 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2ACC JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2AE0 PUSH2 0x2AD8 DUP6 PUSH2 0x2998 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2A7F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B06 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2AE8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B1F DUP4 DUP4 PUSH2 0x2AF5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B38 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B51 JUMPI PUSH2 0x2B50 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2B5B DUP3 SLOAD PUSH2 0x27A2 JUMP JUMPDEST PUSH2 0x2B66 DUP3 DUP3 DUP6 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2B99 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2B87 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2B91 DUP6 DUP3 PUSH2 0x2B13 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2BF9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2BA7 DUP7 PUSH2 0x2983 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BCF JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2BAA JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2BEC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2BE8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2AF5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0D DUP3 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C19 DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C24 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x2C86 DUP3 PUSH2 0x2C5F JUMP JUMPDEST PUSH2 0x2C90 DUP2 DUP6 PUSH2 0x2C6A JUMP JUMPDEST SWAP4 POP PUSH2 0x2CA0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2CA9 DUP2 PUSH2 0x21E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2CC9 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CD6 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CE3 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2CF5 DUP2 DUP5 PUSH2 0x2C7B JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2D0F DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2D39 DUP5 DUP3 DUP6 ADD PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D4D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D58 DUP4 PUSH2 0x2250 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D70 JUMPI PUSH2 0x2D6F PUSH2 0x2833 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 TIMESTAMP SELFBALANCE SMOD PUSH21 0xF454E660AA990254ED1F1D8F5271FFA5F567E4E79C PUSH25 0x81BF12EA2064736F6C634300081A0033000000000000000000 ", + "sourceMap": "428:1989:18:-:0;;;608:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;692:10;1381:113:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:5;1447;:13;;;;;;:::i;:::-;;1480:7;1470;:17;;;;;;:::i;:::-;;1381:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;733:8:18::2;714:16;:27;;;;;;:::i;:::-;;766:1;751:12;:16;;;;608:166:::0;428:1989;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:75:19:-;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:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1801:1;1796:3;1792:11;1786:18;1782:1;1777:3;1773:11;1766:39;1738:2;1735:1;1731:10;1726:15;;1702:113;;;1849:1;1840:6;1835:3;1831:16;1824:27;1672:186;1610:248;;;:::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;;:::i;:::-;2119:112;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;;:::i;:::-;2401:122;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;;2391:282;2318:355;;;;:::o;2679:524::-;2759:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:119;;;2814:79;;:::i;:::-;2776:119;2955:1;2944:9;2940:17;2934:24;2985:18;2977:6;2974:30;2971:117;;;3007:79;;:::i;:::-;2971:117;3112:74;3178:7;3169:6;3158:9;3154:22;3112:74;:::i;:::-;3102:84;;2905:291;2679:524;;;;:::o;3209:99::-;3261:6;3295:5;3289:12;3279:22;;3209:99;;;:::o;3314:180::-;3362:77;3359:1;3352:88;3459:4;3456:1;3449:15;3483:4;3480:1;3473:15;3500:320;3544:6;3581:1;3575:4;3571:12;3561:22;;3628:1;3622:4;3618:12;3649:18;3639:81;;3705:4;3697:6;3693:17;3683:27;;3639:81;3767:2;3759:6;3756:14;3736:18;3733:38;3730:84;;3786:18;;:::i;:::-;3730:84;3551:269;3500:320;;;:::o;3826:141::-;3875:4;3898:3;3890:11;;3921:3;3918:1;3911:14;3955:4;3952:1;3942:18;3934:26;;3826:141;;;:::o;3973:93::-;4010:6;4057:2;4052;4045:5;4041:14;4037:23;4027:33;;3973:93;;;:::o;4072:107::-;4116:8;4166:5;4160:4;4156:16;4135:37;;4072:107;;;;:::o;4185:393::-;4254:6;4304:1;4292:10;4288:18;4327:97;4357:66;4346:9;4327:97;:::i;:::-;4445:39;4475:8;4464:9;4445:39;:::i;:::-;4433:51;;4517:4;4513:9;4506:5;4502:21;4493:30;;4566:4;4556:8;4552:19;4545:5;4542:30;4532:40;;4261:317;;4185:393;;;;;:::o;4584:77::-;4621:7;4650:5;4639:16;;4584:77;;;:::o;4667:60::-;4695:3;4716:5;4709:12;;4667:60;;;:::o;4733:142::-;4783:9;4816:53;4834:34;4843:24;4861:5;4843:24;:::i;:::-;4834:34;:::i;:::-;4816:53;:::i;:::-;4803:66;;4733:142;;;:::o;4881:75::-;4924:3;4945:5;4938:12;;4881:75;;;:::o;4962:269::-;5072:39;5103:7;5072:39;:::i;:::-;5133:91;5182:41;5206:16;5182:41;:::i;:::-;5174:6;5167:4;5161:11;5133:91;:::i;:::-;5127:4;5120:105;5038:193;4962:269;;;:::o;5237:73::-;5282:3;5237:73;:::o;5316:189::-;5393:32;;:::i;:::-;5434:65;5492:6;5484;5478:4;5434:65;:::i;:::-;5369:136;5316:189;;:::o;5511:186::-;5571:120;5588:3;5581:5;5578:14;5571:120;;;5642:39;5679:1;5672:5;5642:39;:::i;:::-;5615:1;5608:5;5604:13;5595:22;;5571:120;;;5511:186;;:::o;5703:543::-;5804:2;5799:3;5796:11;5793:446;;;5838:38;5870:5;5838:38;:::i;:::-;5922:29;5940:10;5922:29;:::i;:::-;5912:8;5908:44;6105:2;6093:10;6090:18;6087:49;;;6126:8;6111:23;;6087:49;6149:80;6205:22;6223:3;6205:22;:::i;:::-;6195:8;6191:37;6178:11;6149:80;:::i;:::-;5808:431;;5793:446;5703:543;;;:::o;6252:117::-;6306:8;6356:5;6350:4;6346:16;6325:37;;6252:117;;;;:::o;6375:169::-;6419:6;6452:51;6500:1;6496:6;6488:5;6485:1;6481:13;6452:51;:::i;:::-;6448:56;6533:4;6527;6523:15;6513:25;;6426:118;6375:169;;;;:::o;6549:295::-;6625:4;6771:29;6796:3;6790:4;6771:29;:::i;:::-;6763:37;;6833:3;6830:1;6826:11;6820:4;6817:21;6809:29;;6549:295;;;;:::o;6849:1395::-;6966:37;6999:3;6966:37;:::i;:::-;7068:18;7060:6;7057:30;7054:56;;;7090:18;;:::i;:::-;7054:56;7134:38;7166:4;7160:11;7134:38;:::i;:::-;7219:67;7279:6;7271;7265:4;7219:67;:::i;:::-;7313:1;7337:4;7324:17;;7369:2;7361:6;7358:14;7386:1;7381:618;;;;8043:1;8060:6;8057:77;;;8109:9;8104:3;8100:19;8094:26;8085:35;;8057:77;8160:67;8220:6;8213:5;8160:67;:::i;:::-;8154:4;8147:81;8016:222;7351:887;;7381:618;7433:4;7429:9;7421:6;7417:22;7467:37;7499:4;7467:37;:::i;:::-;7526:1;7540:208;7554:7;7551:1;7548:14;7540:208;;;7633:9;7628:3;7624:19;7618:26;7610:6;7603:42;7684:1;7676:6;7672:14;7662:24;;7731:2;7720:9;7716:18;7703:31;;7577:4;7574:1;7570:12;7565:17;;7540:208;;;7776:6;7767:7;7764:19;7761:179;;;7834:9;7829:3;7825:19;7819:26;7877:48;7919:4;7911:6;7907:17;7896:9;7877:48;:::i;:::-;7869:6;7862:64;7784:156;7761:179;7986:1;7982;7974:6;7970:14;7966:22;7960:4;7953:36;7388:611;;;7351:887;;6941:1303;;;6849:1395;;:::o;8250:126::-;8287:7;8327:42;8320:5;8316:54;8305:65;;8250:126;;;:::o;8382:96::-;8419:7;8448:24;8466:5;8448:24;:::i;:::-;8437:35;;8382:96;;;:::o;8484:118::-;8571:24;8589:5;8571:24;:::i;:::-;8566:3;8559:37;8484:118;;:::o;8608:222::-;8701:4;8739:2;8728:9;8724:18;8716:26;;8752:71;8820:1;8809:9;8805:17;8796:6;8752:71;:::i;:::-;8608:222;;;;:::o;428:1989:18:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addTokenToAllTokensEnumeration_1710": { + "entryPoint": 6881, + "id": 1710, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_addTokenToOwnerEnumeration_1690": { + "entryPoint": 7516, + "id": 1690, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_approve_1128": { + "entryPoint": 3176, + "id": 1128, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1194": { + "entryPoint": 5012, + "id": 1194, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_3608": { + "entryPoint": 4683, + "id": 3608, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkAuthorized_776": { + "entryPoint": 8010, + "id": 776, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkOnERC721Received_1324": { + "entryPoint": 4244, + "id": 1324, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 3216, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getApproved_703": { + "entryPoint": 3107, + "id": 703, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isAuthorized_739": { + "entryPoint": 8206, + "id": 739, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_mint_932": { + "entryPoint": 7655, + "id": 932, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2042": { + "entryPoint": 3168, + "id": 2042, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_690": { + "entryPoint": 4951, + "id": 690, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_removeTokenFromAllTokensEnumeration_1818": { + "entryPoint": 7307, + "id": 1818, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_removeTokenFromOwnerEnumeration_1770": { + "entryPoint": 6954, + "id": 1770, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_requireOwned_1260": { + "entryPoint": 2971, + "id": 1260, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_safeMint_947": { + "entryPoint": 3351, + "id": 947, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_973": { + "entryPoint": 5750, + "id": 973, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1231": { + "entryPoint": 3877, + "id": 1231, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setTokenURI_1969": { + "entryPoint": 3587, + "id": 1969, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 3679, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_update_1659": { + "entryPoint": 5465, + "id": 1659, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_update_3638": { + "entryPoint": 3194, + "id": 3638, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_update_882": { + "entryPoint": 6343, + "id": 882, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@approve_537": { + "entryPoint": 1287, + "id": 537, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_445": { + "entryPoint": 2052, + "id": 445, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_554": { + "entryPoint": 1259, + "id": 554, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getCurrentTokenId_3616": { + "entryPoint": 2024, + "id": 3616, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@isApprovedForAll_587": { + "entryPoint": 2592, + "id": 587, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_3225": { + "entryPoint": 5778, + "id": 3225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_467": { + "entryPoint": 1113, + "id": 467, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_458": { + "entryPoint": 2034, + "id": 458, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 2258, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 2238, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeMint_3599": { + "entryPoint": 1749, + "id": 3599, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@safeTransferFrom_651": { + "entryPoint": 1847, + "id": 651, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_677": { + "entryPoint": 2468, + "id": 677, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_570": { + "entryPoint": 2446, + "id": 570, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setBaseURI_3566": { + "entryPoint": 1997, + "id": 3566, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@supportsInterface_1524": { + "entryPoint": 4829, + "id": 1524, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1893": { + "entryPoint": 2874, + "id": 1893, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2338": { + "entryPoint": 7904, + "id": 2338, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3710": { + "entryPoint": 1095, + "id": 3710, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_417": { + "entryPoint": 6117, + "id": 417, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_476": { + "entryPoint": 2300, + "id": 476, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2128": { + "entryPoint": 3381, + "id": 2128, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenByIndex_1590": { + "entryPoint": 1879, + "id": 1590, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenOfOwnerByIndex_1553": { + "entryPoint": 1580, + "id": 1553, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@tokenURI_3693": { + "entryPoint": 2497, + "id": 3693, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@totalSupply_1563": { + "entryPoint": 1309, + "id": 1563, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_633": { + "entryPoint": 1322, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@transferOwnership_126": { + "entryPoint": 2740, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 9792, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 9450, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 8998, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 9658, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8486, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 11520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 9858, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 9516, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 8817, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 9208, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 10035, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 9125, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 9904, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 9679, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 9019, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8507, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 11541, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 9562, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 8838, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 8933, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8564, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 11387, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8693, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10511, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9083, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11265, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 10546, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 8948, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 11444, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 10250, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 10195, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8579, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8750, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 9098, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9359, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8399, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9743, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 9386, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 10627, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 11359, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8606, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 11370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8617, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10410, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 11586, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 10914, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 8915, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8552, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8419, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 8883, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8784, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 10879, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 10769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 11055, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9435, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8634, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 10648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 10146, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 11027, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9310, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 10759, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 10338, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 10997, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 10291, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 11312, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 10099, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x31": { + "entryPoint": 11638, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 10580, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9263, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 10803, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9253, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9258, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8414, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8409, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 8676, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 10664, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 10984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 10855, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972": { + "entryPoint": 10470, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 10677, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 10813, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 8975, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 9635, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 8794, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 10850, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:23090:19", + "nodeType": "YulBlock", + "src": "0:23090:19", + "statements": [ + { + "body": { + "nativeSrc": "47:35:19", + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nativeSrc": "57:19:19", + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:19", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:19", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nativeSrc": "67:9:19", + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:19", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:19", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nativeSrc": "177:28:19", + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:19", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:19", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:19", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:19", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nativeSrc": "300:28:19", + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:19", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:19", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:19", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:19", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nativeSrc": "378:105:19", + "nodeType": "YulBlock", + "src": "378:105:19", + "statements": [ + { + "nativeSrc": "388:89:19", + "nodeType": "YulAssignment", + "src": "388:89:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:19", + "nodeType": "YulIdentifier", + "src": "403:5:19" + }, + { + "kind": "number", + "nativeSrc": "410:66:19", + "nodeType": "YulLiteral", + "src": "410:66:19", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:19", + "nodeType": "YulIdentifier", + "src": "399:3:19" + }, + "nativeSrc": "399:78:19", + "nodeType": "YulFunctionCall", + "src": "399:78:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:19", + "nodeType": "YulIdentifier", + "src": "388:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:19", + "nodeType": "YulTypedName", + "src": "360:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:19", + "nodeType": "YulTypedName", + "src": "370:7:19", + "type": "" + } + ], + "src": "334:149:19" + }, + { + "body": { + "nativeSrc": "531:78:19", + "nodeType": "YulBlock", + "src": "531:78:19", + "statements": [ + { + "body": { + "nativeSrc": "587:16:19", + "nodeType": "YulBlock", + "src": "587:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:19", + "nodeType": "YulLiteral", + "src": "596:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:19", + "nodeType": "YulLiteral", + "src": "599:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:19", + "nodeType": "YulIdentifier", + "src": "589:6:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulFunctionCall", + "src": "589:12:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulExpressionStatement", + "src": "589:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:19", + "nodeType": "YulIdentifier", + "src": "554:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:19", + "nodeType": "YulIdentifier", + "src": "578:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:19", + "nodeType": "YulIdentifier", + "src": "561:16:19" + }, + "nativeSrc": "561:23:19", + "nodeType": "YulFunctionCall", + "src": "561:23:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:19", + "nodeType": "YulIdentifier", + "src": "551:2:19" + }, + "nativeSrc": "551:34:19", + "nodeType": "YulFunctionCall", + "src": "551:34:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:19", + "nodeType": "YulIdentifier", + "src": "544:6:19" + }, + "nativeSrc": "544:42:19", + "nodeType": "YulFunctionCall", + "src": "544:42:19" + }, + "nativeSrc": "541:62:19", + "nodeType": "YulIf", + "src": "541:62:19" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:19", + "nodeType": "YulTypedName", + "src": "524:5:19", + "type": "" + } + ], + "src": "489:120:19" + }, + { + "body": { + "nativeSrc": "666:86:19", + "nodeType": "YulBlock", + "src": "666:86:19", + "statements": [ + { + "nativeSrc": "676:29:19", + "nodeType": "YulAssignment", + "src": "676:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:19", + "nodeType": "YulIdentifier", + "src": "698:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:19", + "nodeType": "YulIdentifier", + "src": "685:12:19" + }, + "nativeSrc": "685:20:19", + "nodeType": "YulFunctionCall", + "src": "685:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:19", + "nodeType": "YulIdentifier", + "src": "676:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:19", + "nodeType": "YulIdentifier", + "src": "740:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:19", + "nodeType": "YulIdentifier", + "src": "714:25:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulFunctionCall", + "src": "714:32:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulExpressionStatement", + "src": "714:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:19", + "nodeType": "YulTypedName", + "src": "644:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:19", + "nodeType": "YulTypedName", + "src": "652:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:19", + "nodeType": "YulTypedName", + "src": "660:5:19", + "type": "" + } + ], + "src": "615:137:19" + }, + { + "body": { + "nativeSrc": "823:262:19", + "nodeType": "YulBlock", + "src": "823:262:19", + "statements": [ + { + "body": { + "nativeSrc": "869:83:19", + "nodeType": "YulBlock", + "src": "869:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:19", + "nodeType": "YulIdentifier", + "src": "871:77:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulFunctionCall", + "src": "871:79:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulExpressionStatement", + "src": "871:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:19", + "nodeType": "YulIdentifier", + "src": "844:7:19" + }, + { + "name": "headStart", + "nativeSrc": "853:9:19", + "nodeType": "YulIdentifier", + "src": "853:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:19", + "nodeType": "YulIdentifier", + "src": "840:3:19" + }, + "nativeSrc": "840:23:19", + "nodeType": "YulFunctionCall", + "src": "840:23:19" + }, + { + "kind": "number", + "nativeSrc": "865:2:19", + "nodeType": "YulLiteral", + "src": "865:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:19", + "nodeType": "YulIdentifier", + "src": "836:3:19" + }, + "nativeSrc": "836:32:19", + "nodeType": "YulFunctionCall", + "src": "836:32:19" + }, + "nativeSrc": "833:119:19", + "nodeType": "YulIf", + "src": "833:119:19" + }, + { + "nativeSrc": "962:116:19", + "nodeType": "YulBlock", + "src": "962:116:19", + "statements": [ + { + "nativeSrc": "977:15:19", + "nodeType": "YulVariableDeclaration", + "src": "977:15:19", + "value": { + "kind": "number", + "nativeSrc": "991:1:19", + "nodeType": "YulLiteral", + "src": "991:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:19", + "nodeType": "YulTypedName", + "src": "981:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:19", + "nodeType": "YulAssignment", + "src": "1006:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:19", + "nodeType": "YulIdentifier", + "src": "1040:9:19" + }, + { + "name": "offset", + "nativeSrc": "1051:6:19", + "nodeType": "YulIdentifier", + "src": "1051:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:19", + "nodeType": "YulIdentifier", + "src": "1036:3:19" + }, + "nativeSrc": "1036:22:19", + "nodeType": "YulFunctionCall", + "src": "1036:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:19", + "nodeType": "YulIdentifier", + "src": "1060:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:19", + "nodeType": "YulIdentifier", + "src": "1016:19:19" + }, + "nativeSrc": "1016:52:19", + "nodeType": "YulFunctionCall", + "src": "1016:52:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:19", + "nodeType": "YulIdentifier", + "src": "1006:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:19", + "nodeType": "YulTypedName", + "src": "793:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:19", + "nodeType": "YulTypedName", + "src": "804:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:19", + "nodeType": "YulTypedName", + "src": "816:6:19", + "type": "" + } + ], + "src": "758:327:19" + }, + { + "body": { + "nativeSrc": "1133:48:19", + "nodeType": "YulBlock", + "src": "1133:48:19", + "statements": [ + { + "nativeSrc": "1143:32:19", + "nodeType": "YulAssignment", + "src": "1143:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:19", + "nodeType": "YulIdentifier", + "src": "1168:5:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:19", + "nodeType": "YulIdentifier", + "src": "1161:6:19" + }, + "nativeSrc": "1161:13:19", + "nodeType": "YulFunctionCall", + "src": "1161:13:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:19", + "nodeType": "YulIdentifier", + "src": "1154:6:19" + }, + "nativeSrc": "1154:21:19", + "nodeType": "YulFunctionCall", + "src": "1154:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:19", + "nodeType": "YulIdentifier", + "src": "1143:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:19", + "nodeType": "YulTypedName", + "src": "1115:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:19", + "nodeType": "YulTypedName", + "src": "1125:7:19", + "type": "" + } + ], + "src": "1091:90:19" + }, + { + "body": { + "nativeSrc": "1246:50:19", + "nodeType": "YulBlock", + "src": "1246:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:19", + "nodeType": "YulIdentifier", + "src": "1263:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:19", + "nodeType": "YulIdentifier", + "src": "1283:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:19", + "nodeType": "YulIdentifier", + "src": "1268:14:19" + }, + "nativeSrc": "1268:21:19", + "nodeType": "YulFunctionCall", + "src": "1268:21:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:19", + "nodeType": "YulIdentifier", + "src": "1256:6:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulFunctionCall", + "src": "1256:34:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulExpressionStatement", + "src": "1256:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:19", + "nodeType": "YulTypedName", + "src": "1234:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:19", + "nodeType": "YulTypedName", + "src": "1241:3:19", + "type": "" + } + ], + "src": "1187:109:19" + }, + { + "body": { + "nativeSrc": "1394:118:19", + "nodeType": "YulBlock", + "src": "1394:118:19", + "statements": [ + { + "nativeSrc": "1404:26:19", + "nodeType": "YulAssignment", + "src": "1404:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:19", + "nodeType": "YulIdentifier", + "src": "1416:9:19" + }, + { + "kind": "number", + "nativeSrc": "1427:2:19", + "nodeType": "YulLiteral", + "src": "1427:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:19", + "nodeType": "YulIdentifier", + "src": "1412:3:19" + }, + "nativeSrc": "1412:18:19", + "nodeType": "YulFunctionCall", + "src": "1412:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:19", + "nodeType": "YulIdentifier", + "src": "1404:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:19", + "nodeType": "YulIdentifier", + "src": "1478:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:19", + "nodeType": "YulIdentifier", + "src": "1491:9:19" + }, + { + "kind": "number", + "nativeSrc": "1502:1:19", + "nodeType": "YulLiteral", + "src": "1502:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:19", + "nodeType": "YulIdentifier", + "src": "1487:3:19" + }, + "nativeSrc": "1487:17:19", + "nodeType": "YulFunctionCall", + "src": "1487:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:19", + "nodeType": "YulIdentifier", + "src": "1440:37:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulFunctionCall", + "src": "1440:65:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulExpressionStatement", + "src": "1440:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:19", + "nodeType": "YulTypedName", + "src": "1366:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:19", + "nodeType": "YulTypedName", + "src": "1378:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:19", + "nodeType": "YulTypedName", + "src": "1389:4:19", + "type": "" + } + ], + "src": "1302:210:19" + }, + { + "body": { + "nativeSrc": "1577:40:19", + "nodeType": "YulBlock", + "src": "1577:40:19", + "statements": [ + { + "nativeSrc": "1588:22:19", + "nodeType": "YulAssignment", + "src": "1588:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1604:5:19", + "nodeType": "YulIdentifier", + "src": "1604:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1598:5:19", + "nodeType": "YulIdentifier", + "src": "1598:5:19" + }, + "nativeSrc": "1598:12:19", + "nodeType": "YulFunctionCall", + "src": "1598:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "1588:6:19", + "nodeType": "YulIdentifier", + "src": "1588:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "1518:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1560:5:19", + "nodeType": "YulTypedName", + "src": "1560:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "1570:6:19", + "nodeType": "YulTypedName", + "src": "1570:6:19", + "type": "" + } + ], + "src": "1518:99:19" + }, + { + "body": { + "nativeSrc": "1719:73:19", + "nodeType": "YulBlock", + "src": "1719:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1736:3:19", + "nodeType": "YulIdentifier", + "src": "1736:3:19" + }, + { + "name": "length", + "nativeSrc": "1741:6:19", + "nodeType": "YulIdentifier", + "src": "1741:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1729:6:19", + "nodeType": "YulIdentifier", + "src": "1729:6:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulFunctionCall", + "src": "1729:19:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulExpressionStatement", + "src": "1729:19:19" + }, + { + "nativeSrc": "1757:29:19", + "nodeType": "YulAssignment", + "src": "1757:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1776:3:19", + "nodeType": "YulIdentifier", + "src": "1776:3:19" + }, + { + "kind": "number", + "nativeSrc": "1781:4:19", + "nodeType": "YulLiteral", + "src": "1781:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:19", + "nodeType": "YulIdentifier", + "src": "1772:3:19" + }, + "nativeSrc": "1772:14:19", + "nodeType": "YulFunctionCall", + "src": "1772:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "1757:11:19", + "nodeType": "YulIdentifier", + "src": "1757:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1623:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1691:3:19", + "nodeType": "YulTypedName", + "src": "1691:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1696:6:19", + "nodeType": "YulTypedName", + "src": "1696:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "1707:11:19", + "nodeType": "YulTypedName", + "src": "1707:11:19", + "type": "" + } + ], + "src": "1623:169:19" + }, + { + "body": { + "nativeSrc": "1860:186:19", + "nodeType": "YulBlock", + "src": "1860:186:19", + "statements": [ + { + "nativeSrc": "1871:10:19", + "nodeType": "YulVariableDeclaration", + "src": "1871:10:19", + "value": { + "kind": "number", + "nativeSrc": "1880:1:19", + "nodeType": "YulLiteral", + "src": "1880:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1875:1:19", + "nodeType": "YulTypedName", + "src": "1875:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1940:63:19", + "nodeType": "YulBlock", + "src": "1940:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1965:3:19", + "nodeType": "YulIdentifier", + "src": "1965:3:19" + }, + { + "name": "i", + "nativeSrc": "1970:1:19", + "nodeType": "YulIdentifier", + "src": "1970:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1961:3:19", + "nodeType": "YulIdentifier", + "src": "1961:3:19" + }, + "nativeSrc": "1961:11:19", + "nodeType": "YulFunctionCall", + "src": "1961:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1984:3:19", + "nodeType": "YulIdentifier", + "src": "1984:3:19" + }, + { + "name": "i", + "nativeSrc": "1989:1:19", + "nodeType": "YulIdentifier", + "src": "1989:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1980:3:19", + "nodeType": "YulIdentifier", + "src": "1980:3:19" + }, + "nativeSrc": "1980:11:19", + "nodeType": "YulFunctionCall", + "src": "1980:11:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1974:5:19", + "nodeType": "YulIdentifier", + "src": "1974:5:19" + }, + "nativeSrc": "1974:18:19", + "nodeType": "YulFunctionCall", + "src": "1974:18:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1954:6:19", + "nodeType": "YulIdentifier", + "src": "1954:6:19" + }, + "nativeSrc": "1954:39:19", + "nodeType": "YulFunctionCall", + "src": "1954:39:19" + }, + "nativeSrc": "1954:39:19", + "nodeType": "YulExpressionStatement", + "src": "1954:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1901:1:19", + "nodeType": "YulIdentifier", + "src": "1901:1:19" + }, + { + "name": "length", + "nativeSrc": "1904:6:19", + "nodeType": "YulIdentifier", + "src": "1904:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1898:2:19", + "nodeType": "YulIdentifier", + "src": "1898:2:19" + }, + "nativeSrc": "1898:13:19", + "nodeType": "YulFunctionCall", + "src": "1898:13:19" + }, + "nativeSrc": "1890:113:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1912:19:19", + "nodeType": "YulBlock", + "src": "1912:19:19", + "statements": [ + { + "nativeSrc": "1914:15:19", + "nodeType": "YulAssignment", + "src": "1914:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1923:1:19", + "nodeType": "YulIdentifier", + "src": "1923:1:19" + }, + { + "kind": "number", + "nativeSrc": "1926:2:19", + "nodeType": "YulLiteral", + "src": "1926:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1919:3:19", + "nodeType": "YulIdentifier", + "src": "1919:3:19" + }, + "nativeSrc": "1919:10:19", + "nodeType": "YulFunctionCall", + "src": "1919:10:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1914:1:19", + "nodeType": "YulIdentifier", + "src": "1914:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1894:3:19", + "nodeType": "YulBlock", + "src": "1894:3:19", + "statements": [] + }, + "src": "1890:113:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2023:3:19", + "nodeType": "YulIdentifier", + "src": "2023:3:19" + }, + { + "name": "length", + "nativeSrc": "2028:6:19", + "nodeType": "YulIdentifier", + "src": "2028:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2019:3:19", + "nodeType": "YulIdentifier", + "src": "2019:3:19" + }, + "nativeSrc": "2019:16:19", + "nodeType": "YulFunctionCall", + "src": "2019:16:19" + }, + { + "kind": "number", + "nativeSrc": "2037:1:19", + "nodeType": "YulLiteral", + "src": "2037:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2012:6:19", + "nodeType": "YulIdentifier", + "src": "2012:6:19" + }, + "nativeSrc": "2012:27:19", + "nodeType": "YulFunctionCall", + "src": "2012:27:19" + }, + "nativeSrc": "2012:27:19", + "nodeType": "YulExpressionStatement", + "src": "2012:27:19" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1798:248:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1842:3:19", + "nodeType": "YulTypedName", + "src": "1842:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1847:3:19", + "nodeType": "YulTypedName", + "src": "1847:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1852:6:19", + "nodeType": "YulTypedName", + "src": "1852:6:19", + "type": "" + } + ], + "src": "1798:248:19" + }, + { + "body": { + "nativeSrc": "2100:54:19", + "nodeType": "YulBlock", + "src": "2100:54:19", + "statements": [ + { + "nativeSrc": "2110:38:19", + "nodeType": "YulAssignment", + "src": "2110:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2128:5:19", + "nodeType": "YulIdentifier", + "src": "2128:5:19" + }, + { + "kind": "number", + "nativeSrc": "2135:2:19", + "nodeType": "YulLiteral", + "src": "2135:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2124:3:19", + "nodeType": "YulIdentifier", + "src": "2124:3:19" + }, + "nativeSrc": "2124:14:19", + "nodeType": "YulFunctionCall", + "src": "2124:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2144:2:19", + "nodeType": "YulLiteral", + "src": "2144:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2140:3:19", + "nodeType": "YulIdentifier", + "src": "2140:3:19" + }, + "nativeSrc": "2140:7:19", + "nodeType": "YulFunctionCall", + "src": "2140:7:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2120:3:19", + "nodeType": "YulIdentifier", + "src": "2120:3:19" + }, + "nativeSrc": "2120:28:19", + "nodeType": "YulFunctionCall", + "src": "2120:28:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2110:6:19", + "nodeType": "YulIdentifier", + "src": "2110:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "2052:102:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2083:5:19", + "nodeType": "YulTypedName", + "src": "2083:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2093:6:19", + "nodeType": "YulTypedName", + "src": "2093:6:19", + "type": "" + } + ], + "src": "2052:102:19" + }, + { + "body": { + "nativeSrc": "2252:285:19", + "nodeType": "YulBlock", + "src": "2252:285:19", + "statements": [ + { + "nativeSrc": "2262:53:19", + "nodeType": "YulVariableDeclaration", + "src": "2262:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2309:5:19", + "nodeType": "YulIdentifier", + "src": "2309:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "2276:32:19", + "nodeType": "YulIdentifier", + "src": "2276:32:19" + }, + "nativeSrc": "2276:39:19", + "nodeType": "YulFunctionCall", + "src": "2276:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2266:6:19", + "nodeType": "YulTypedName", + "src": "2266:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2324:78:19", + "nodeType": "YulAssignment", + "src": "2324:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2390:3:19", + "nodeType": "YulIdentifier", + "src": "2390:3:19" + }, + { + "name": "length", + "nativeSrc": "2395:6:19", + "nodeType": "YulIdentifier", + "src": "2395:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2331:58:19", + "nodeType": "YulIdentifier", + "src": "2331:58:19" + }, + "nativeSrc": "2331:71:19", + "nodeType": "YulFunctionCall", + "src": "2331:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2324:3:19", + "nodeType": "YulIdentifier", + "src": "2324:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2450:5:19", + "nodeType": "YulIdentifier", + "src": "2450:5:19" + }, + { + "kind": "number", + "nativeSrc": "2457:4:19", + "nodeType": "YulLiteral", + "src": "2457:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2446:3:19", + "nodeType": "YulIdentifier", + "src": "2446:3:19" + }, + "nativeSrc": "2446:16:19", + "nodeType": "YulFunctionCall", + "src": "2446:16:19" + }, + { + "name": "pos", + "nativeSrc": "2464:3:19", + "nodeType": "YulIdentifier", + "src": "2464:3:19" + }, + { + "name": "length", + "nativeSrc": "2469:6:19", + "nodeType": "YulIdentifier", + "src": "2469:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2411:34:19", + "nodeType": "YulIdentifier", + "src": "2411:34:19" + }, + "nativeSrc": "2411:65:19", + "nodeType": "YulFunctionCall", + "src": "2411:65:19" + }, + "nativeSrc": "2411:65:19", + "nodeType": "YulExpressionStatement", + "src": "2411:65:19" + }, + { + "nativeSrc": "2485:46:19", + "nodeType": "YulAssignment", + "src": "2485:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2496:3:19", + "nodeType": "YulIdentifier", + "src": "2496:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2523:6:19", + "nodeType": "YulIdentifier", + "src": "2523:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2501:21:19", + "nodeType": "YulIdentifier", + "src": "2501:21:19" + }, + "nativeSrc": "2501:29:19", + "nodeType": "YulFunctionCall", + "src": "2501:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2492:3:19", + "nodeType": "YulIdentifier", + "src": "2492:3:19" + }, + "nativeSrc": "2492:39:19", + "nodeType": "YulFunctionCall", + "src": "2492:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2485:3:19", + "nodeType": "YulIdentifier", + "src": "2485:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2160:377:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2233:5:19", + "nodeType": "YulTypedName", + "src": "2233:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2240:3:19", + "nodeType": "YulTypedName", + "src": "2240:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2248:3:19", + "nodeType": "YulTypedName", + "src": "2248:3:19", + "type": "" + } + ], + "src": "2160:377:19" + }, + { + "body": { + "nativeSrc": "2661:195:19", + "nodeType": "YulBlock", + "src": "2661:195:19", + "statements": [ + { + "nativeSrc": "2671:26:19", + "nodeType": "YulAssignment", + "src": "2671:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2683:9:19", + "nodeType": "YulIdentifier", + "src": "2683:9:19" + }, + { + "kind": "number", + "nativeSrc": "2694:2:19", + "nodeType": "YulLiteral", + "src": "2694:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2679:3:19", + "nodeType": "YulIdentifier", + "src": "2679:3:19" + }, + "nativeSrc": "2679:18:19", + "nodeType": "YulFunctionCall", + "src": "2679:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2671:4:19", + "nodeType": "YulIdentifier", + "src": "2671:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2718:9:19", + "nodeType": "YulIdentifier", + "src": "2718:9:19" + }, + { + "kind": "number", + "nativeSrc": "2729:1:19", + "nodeType": "YulLiteral", + "src": "2729:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2714:3:19", + "nodeType": "YulIdentifier", + "src": "2714:3:19" + }, + "nativeSrc": "2714:17:19", + "nodeType": "YulFunctionCall", + "src": "2714:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "2737:4:19", + "nodeType": "YulIdentifier", + "src": "2737:4:19" + }, + { + "name": "headStart", + "nativeSrc": "2743:9:19", + "nodeType": "YulIdentifier", + "src": "2743:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2733:3:19", + "nodeType": "YulIdentifier", + "src": "2733:3:19" + }, + "nativeSrc": "2733:20:19", + "nodeType": "YulFunctionCall", + "src": "2733:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2707:6:19", + "nodeType": "YulIdentifier", + "src": "2707:6:19" + }, + "nativeSrc": "2707:47:19", + "nodeType": "YulFunctionCall", + "src": "2707:47:19" + }, + "nativeSrc": "2707:47:19", + "nodeType": "YulExpressionStatement", + "src": "2707:47:19" + }, + { + "nativeSrc": "2763:86:19", + "nodeType": "YulAssignment", + "src": "2763:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2835:6:19", + "nodeType": "YulIdentifier", + "src": "2835:6:19" + }, + { + "name": "tail", + "nativeSrc": "2844:4:19", + "nodeType": "YulIdentifier", + "src": "2844:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2771:63:19", + "nodeType": "YulIdentifier", + "src": "2771:63:19" + }, + "nativeSrc": "2771:78:19", + "nodeType": "YulFunctionCall", + "src": "2771:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2763:4:19", + "nodeType": "YulIdentifier", + "src": "2763:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2543:313:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2633:9:19", + "nodeType": "YulTypedName", + "src": "2633:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2645:6:19", + "nodeType": "YulTypedName", + "src": "2645:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2656:4:19", + "nodeType": "YulTypedName", + "src": "2656:4:19", + "type": "" + } + ], + "src": "2543:313:19" + }, + { + "body": { + "nativeSrc": "2907:32:19", + "nodeType": "YulBlock", + "src": "2907:32:19", + "statements": [ + { + "nativeSrc": "2917:16:19", + "nodeType": "YulAssignment", + "src": "2917:16:19", + "value": { + "name": "value", + "nativeSrc": "2928:5:19", + "nodeType": "YulIdentifier", + "src": "2928:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2917:7:19", + "nodeType": "YulIdentifier", + "src": "2917:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2862:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2889:5:19", + "nodeType": "YulTypedName", + "src": "2889:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2899:7:19", + "nodeType": "YulTypedName", + "src": "2899:7:19", + "type": "" + } + ], + "src": "2862:77:19" + }, + { + "body": { + "nativeSrc": "2988:79:19", + "nodeType": "YulBlock", + "src": "2988:79:19", + "statements": [ + { + "body": { + "nativeSrc": "3045:16:19", + "nodeType": "YulBlock", + "src": "3045:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3054:1:19", + "nodeType": "YulLiteral", + "src": "3054:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3057:1:19", + "nodeType": "YulLiteral", + "src": "3057:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3047:6:19", + "nodeType": "YulIdentifier", + "src": "3047:6:19" + }, + "nativeSrc": "3047:12:19", + "nodeType": "YulFunctionCall", + "src": "3047:12:19" + }, + "nativeSrc": "3047:12:19", + "nodeType": "YulExpressionStatement", + "src": "3047:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3011:5:19", + "nodeType": "YulIdentifier", + "src": "3011:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3036:5:19", + "nodeType": "YulIdentifier", + "src": "3036:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "3018:17:19", + "nodeType": "YulIdentifier", + "src": "3018:17:19" + }, + "nativeSrc": "3018:24:19", + "nodeType": "YulFunctionCall", + "src": "3018:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3008:2:19", + "nodeType": "YulIdentifier", + "src": "3008:2:19" + }, + "nativeSrc": "3008:35:19", + "nodeType": "YulFunctionCall", + "src": "3008:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3001:6:19", + "nodeType": "YulIdentifier", + "src": "3001:6:19" + }, + "nativeSrc": "3001:43:19", + "nodeType": "YulFunctionCall", + "src": "3001:43:19" + }, + "nativeSrc": "2998:63:19", + "nodeType": "YulIf", + "src": "2998:63:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2945:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2981:5:19", + "nodeType": "YulTypedName", + "src": "2981:5:19", + "type": "" + } + ], + "src": "2945:122:19" + }, + { + "body": { + "nativeSrc": "3125:87:19", + "nodeType": "YulBlock", + "src": "3125:87:19", + "statements": [ + { + "nativeSrc": "3135:29:19", + "nodeType": "YulAssignment", + "src": "3135:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3157:6:19", + "nodeType": "YulIdentifier", + "src": "3157:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3144:12:19", + "nodeType": "YulIdentifier", + "src": "3144:12:19" + }, + "nativeSrc": "3144:20:19", + "nodeType": "YulFunctionCall", + "src": "3144:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3135:5:19", + "nodeType": "YulIdentifier", + "src": "3135:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3200:5:19", + "nodeType": "YulIdentifier", + "src": "3200:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3173:26:19", + "nodeType": "YulIdentifier", + "src": "3173:26:19" + }, + "nativeSrc": "3173:33:19", + "nodeType": "YulFunctionCall", + "src": "3173:33:19" + }, + "nativeSrc": "3173:33:19", + "nodeType": "YulExpressionStatement", + "src": "3173:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "3073:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3103:6:19", + "nodeType": "YulTypedName", + "src": "3103:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3111:3:19", + "nodeType": "YulTypedName", + "src": "3111:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3119:5:19", + "nodeType": "YulTypedName", + "src": "3119:5:19", + "type": "" + } + ], + "src": "3073:139:19" + }, + { + "body": { + "nativeSrc": "3284:263:19", + "nodeType": "YulBlock", + "src": "3284:263:19", + "statements": [ + { + "body": { + "nativeSrc": "3330:83:19", + "nodeType": "YulBlock", + "src": "3330:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3332:77:19", + "nodeType": "YulIdentifier", + "src": "3332:77:19" + }, + "nativeSrc": "3332:79:19", + "nodeType": "YulFunctionCall", + "src": "3332:79:19" + }, + "nativeSrc": "3332:79:19", + "nodeType": "YulExpressionStatement", + "src": "3332:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3305:7:19", + "nodeType": "YulIdentifier", + "src": "3305:7:19" + }, + { + "name": "headStart", + "nativeSrc": "3314:9:19", + "nodeType": "YulIdentifier", + "src": "3314:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3301:3:19", + "nodeType": "YulIdentifier", + "src": "3301:3:19" + }, + "nativeSrc": "3301:23:19", + "nodeType": "YulFunctionCall", + "src": "3301:23:19" + }, + { + "kind": "number", + "nativeSrc": "3326:2:19", + "nodeType": "YulLiteral", + "src": "3326:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3297:3:19", + "nodeType": "YulIdentifier", + "src": "3297:3:19" + }, + "nativeSrc": "3297:32:19", + "nodeType": "YulFunctionCall", + "src": "3297:32:19" + }, + "nativeSrc": "3294:119:19", + "nodeType": "YulIf", + "src": "3294:119:19" + }, + { + "nativeSrc": "3423:117:19", + "nodeType": "YulBlock", + "src": "3423:117:19", + "statements": [ + { + "nativeSrc": "3438:15:19", + "nodeType": "YulVariableDeclaration", + "src": "3438:15:19", + "value": { + "kind": "number", + "nativeSrc": "3452:1:19", + "nodeType": "YulLiteral", + "src": "3452:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3442:6:19", + "nodeType": "YulTypedName", + "src": "3442:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "3467:63:19", + "nodeType": "YulAssignment", + "src": "3467:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3502:9:19", + "nodeType": "YulIdentifier", + "src": "3502:9:19" + }, + { + "name": "offset", + "nativeSrc": "3513:6:19", + "nodeType": "YulIdentifier", + "src": "3513:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3498:3:19", + "nodeType": "YulIdentifier", + "src": "3498:3:19" + }, + "nativeSrc": "3498:22:19", + "nodeType": "YulFunctionCall", + "src": "3498:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "3522:7:19", + "nodeType": "YulIdentifier", + "src": "3522:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3477:20:19", + "nodeType": "YulIdentifier", + "src": "3477:20:19" + }, + "nativeSrc": "3477:53:19", + "nodeType": "YulFunctionCall", + "src": "3477:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3467:6:19", + "nodeType": "YulIdentifier", + "src": "3467:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3218:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3254:9:19", + "nodeType": "YulTypedName", + "src": "3254:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3265:7:19", + "nodeType": "YulTypedName", + "src": "3265:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3277:6:19", + "nodeType": "YulTypedName", + "src": "3277:6:19", + "type": "" + } + ], + "src": "3218:329:19" + }, + { + "body": { + "nativeSrc": "3598:81:19", + "nodeType": "YulBlock", + "src": "3598:81:19", + "statements": [ + { + "nativeSrc": "3608:65:19", + "nodeType": "YulAssignment", + "src": "3608:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3623:5:19", + "nodeType": "YulIdentifier", + "src": "3623:5:19" + }, + { + "kind": "number", + "nativeSrc": "3630:42:19", + "nodeType": "YulLiteral", + "src": "3630:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3619:3:19", + "nodeType": "YulIdentifier", + "src": "3619:3:19" + }, + "nativeSrc": "3619:54:19", + "nodeType": "YulFunctionCall", + "src": "3619:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3608:7:19", + "nodeType": "YulIdentifier", + "src": "3608:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3553:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3580:5:19", + "nodeType": "YulTypedName", + "src": "3580:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3590:7:19", + "nodeType": "YulTypedName", + "src": "3590:7:19", + "type": "" + } + ], + "src": "3553:126:19" + }, + { + "body": { + "nativeSrc": "3730:51:19", + "nodeType": "YulBlock", + "src": "3730:51:19", + "statements": [ + { + "nativeSrc": "3740:35:19", + "nodeType": "YulAssignment", + "src": "3740:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3769:5:19", + "nodeType": "YulIdentifier", + "src": "3769:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3751:17:19", + "nodeType": "YulIdentifier", + "src": "3751:17:19" + }, + "nativeSrc": "3751:24:19", + "nodeType": "YulFunctionCall", + "src": "3751:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3740:7:19", + "nodeType": "YulIdentifier", + "src": "3740:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3685:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3712:5:19", + "nodeType": "YulTypedName", + "src": "3712:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3722:7:19", + "nodeType": "YulTypedName", + "src": "3722:7:19", + "type": "" + } + ], + "src": "3685:96:19" + }, + { + "body": { + "nativeSrc": "3852:53:19", + "nodeType": "YulBlock", + "src": "3852:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3869:3:19", + "nodeType": "YulIdentifier", + "src": "3869:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3892:5:19", + "nodeType": "YulIdentifier", + "src": "3892:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3874:17:19", + "nodeType": "YulIdentifier", + "src": "3874:17:19" + }, + "nativeSrc": "3874:24:19", + "nodeType": "YulFunctionCall", + "src": "3874:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3862:6:19", + "nodeType": "YulIdentifier", + "src": "3862:6:19" + }, + "nativeSrc": "3862:37:19", + "nodeType": "YulFunctionCall", + "src": "3862:37:19" + }, + "nativeSrc": "3862:37:19", + "nodeType": "YulExpressionStatement", + "src": "3862:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3787:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3840:5:19", + "nodeType": "YulTypedName", + "src": "3840:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3847:3:19", + "nodeType": "YulTypedName", + "src": "3847:3:19", + "type": "" + } + ], + "src": "3787:118:19" + }, + { + "body": { + "nativeSrc": "4009:124:19", + "nodeType": "YulBlock", + "src": "4009:124:19", + "statements": [ + { + "nativeSrc": "4019:26:19", + "nodeType": "YulAssignment", + "src": "4019:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4031:9:19", + "nodeType": "YulIdentifier", + "src": "4031:9:19" + }, + { + "kind": "number", + "nativeSrc": "4042:2:19", + "nodeType": "YulLiteral", + "src": "4042:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4027:3:19", + "nodeType": "YulIdentifier", + "src": "4027:3:19" + }, + "nativeSrc": "4027:18:19", + "nodeType": "YulFunctionCall", + "src": "4027:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4019:4:19", + "nodeType": "YulIdentifier", + "src": "4019:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4099:6:19", + "nodeType": "YulIdentifier", + "src": "4099:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4112:9:19", + "nodeType": "YulIdentifier", + "src": "4112:9:19" + }, + { + "kind": "number", + "nativeSrc": "4123:1:19", + "nodeType": "YulLiteral", + "src": "4123:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4108:3:19", + "nodeType": "YulIdentifier", + "src": "4108:3:19" + }, + "nativeSrc": "4108:17:19", + "nodeType": "YulFunctionCall", + "src": "4108:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4055:43:19", + "nodeType": "YulIdentifier", + "src": "4055:43:19" + }, + "nativeSrc": "4055:71:19", + "nodeType": "YulFunctionCall", + "src": "4055:71:19" + }, + "nativeSrc": "4055:71:19", + "nodeType": "YulExpressionStatement", + "src": "4055:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "3911:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3981:9:19", + "nodeType": "YulTypedName", + "src": "3981:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3993:6:19", + "nodeType": "YulTypedName", + "src": "3993:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4004:4:19", + "nodeType": "YulTypedName", + "src": "4004:4:19", + "type": "" + } + ], + "src": "3911:222:19" + }, + { + "body": { + "nativeSrc": "4182:79:19", + "nodeType": "YulBlock", + "src": "4182:79:19", + "statements": [ + { + "body": { + "nativeSrc": "4239:16:19", + "nodeType": "YulBlock", + "src": "4239:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4248:1:19", + "nodeType": "YulLiteral", + "src": "4248:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4251:1:19", + "nodeType": "YulLiteral", + "src": "4251:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4241:6:19", + "nodeType": "YulIdentifier", + "src": "4241:6:19" + }, + "nativeSrc": "4241:12:19", + "nodeType": "YulFunctionCall", + "src": "4241:12:19" + }, + "nativeSrc": "4241:12:19", + "nodeType": "YulExpressionStatement", + "src": "4241:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4205:5:19", + "nodeType": "YulIdentifier", + "src": "4205:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4230:5:19", + "nodeType": "YulIdentifier", + "src": "4230:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4212:17:19", + "nodeType": "YulIdentifier", + "src": "4212:17:19" + }, + "nativeSrc": "4212:24:19", + "nodeType": "YulFunctionCall", + "src": "4212:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4202:2:19", + "nodeType": "YulIdentifier", + "src": "4202:2:19" + }, + "nativeSrc": "4202:35:19", + "nodeType": "YulFunctionCall", + "src": "4202:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4195:6:19", + "nodeType": "YulIdentifier", + "src": "4195:6:19" + }, + "nativeSrc": "4195:43:19", + "nodeType": "YulFunctionCall", + "src": "4195:43:19" + }, + "nativeSrc": "4192:63:19", + "nodeType": "YulIf", + "src": "4192:63:19" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "4139:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4175:5:19", + "nodeType": "YulTypedName", + "src": "4175:5:19", + "type": "" + } + ], + "src": "4139:122:19" + }, + { + "body": { + "nativeSrc": "4319:87:19", + "nodeType": "YulBlock", + "src": "4319:87:19", + "statements": [ + { + "nativeSrc": "4329:29:19", + "nodeType": "YulAssignment", + "src": "4329:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4351:6:19", + "nodeType": "YulIdentifier", + "src": "4351:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4338:12:19", + "nodeType": "YulIdentifier", + "src": "4338:12:19" + }, + "nativeSrc": "4338:20:19", + "nodeType": "YulFunctionCall", + "src": "4338:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4329:5:19", + "nodeType": "YulIdentifier", + "src": "4329:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4394:5:19", + "nodeType": "YulIdentifier", + "src": "4394:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "4367:26:19", + "nodeType": "YulIdentifier", + "src": "4367:26:19" + }, + "nativeSrc": "4367:33:19", + "nodeType": "YulFunctionCall", + "src": "4367:33:19" + }, + "nativeSrc": "4367:33:19", + "nodeType": "YulExpressionStatement", + "src": "4367:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "4267:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4297:6:19", + "nodeType": "YulTypedName", + "src": "4297:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4305:3:19", + "nodeType": "YulTypedName", + "src": "4305:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4313:5:19", + "nodeType": "YulTypedName", + "src": "4313:5:19", + "type": "" + } + ], + "src": "4267:139:19" + }, + { + "body": { + "nativeSrc": "4495:391:19", + "nodeType": "YulBlock", + "src": "4495:391:19", + "statements": [ + { + "body": { + "nativeSrc": "4541:83:19", + "nodeType": "YulBlock", + "src": "4541:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4543:77:19", + "nodeType": "YulIdentifier", + "src": "4543:77:19" + }, + "nativeSrc": "4543:79:19", + "nodeType": "YulFunctionCall", + "src": "4543:79:19" + }, + "nativeSrc": "4543:79:19", + "nodeType": "YulExpressionStatement", + "src": "4543:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4516:7:19", + "nodeType": "YulIdentifier", + "src": "4516:7:19" + }, + { + "name": "headStart", + "nativeSrc": "4525:9:19", + "nodeType": "YulIdentifier", + "src": "4525:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4512:3:19", + "nodeType": "YulIdentifier", + "src": "4512:3:19" + }, + "nativeSrc": "4512:23:19", + "nodeType": "YulFunctionCall", + "src": "4512:23:19" + }, + { + "kind": "number", + "nativeSrc": "4537:2:19", + "nodeType": "YulLiteral", + "src": "4537:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4508:3:19", + "nodeType": "YulIdentifier", + "src": "4508:3:19" + }, + "nativeSrc": "4508:32:19", + "nodeType": "YulFunctionCall", + "src": "4508:32:19" + }, + "nativeSrc": "4505:119:19", + "nodeType": "YulIf", + "src": "4505:119:19" + }, + { + "nativeSrc": "4634:117:19", + "nodeType": "YulBlock", + "src": "4634:117:19", + "statements": [ + { + "nativeSrc": "4649:15:19", + "nodeType": "YulVariableDeclaration", + "src": "4649:15:19", + "value": { + "kind": "number", + "nativeSrc": "4663:1:19", + "nodeType": "YulLiteral", + "src": "4663:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4653:6:19", + "nodeType": "YulTypedName", + "src": "4653:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4678:63:19", + "nodeType": "YulAssignment", + "src": "4678:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4713:9:19", + "nodeType": "YulIdentifier", + "src": "4713:9:19" + }, + { + "name": "offset", + "nativeSrc": "4724:6:19", + "nodeType": "YulIdentifier", + "src": "4724:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4709:3:19", + "nodeType": "YulIdentifier", + "src": "4709:3:19" + }, + "nativeSrc": "4709:22:19", + "nodeType": "YulFunctionCall", + "src": "4709:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4733:7:19", + "nodeType": "YulIdentifier", + "src": "4733:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4688:20:19", + "nodeType": "YulIdentifier", + "src": "4688:20:19" + }, + "nativeSrc": "4688:53:19", + "nodeType": "YulFunctionCall", + "src": "4688:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4678:6:19", + "nodeType": "YulIdentifier", + "src": "4678:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "4761:118:19", + "nodeType": "YulBlock", + "src": "4761:118:19", + "statements": [ + { + "nativeSrc": "4776:16:19", + "nodeType": "YulVariableDeclaration", + "src": "4776:16:19", + "value": { + "kind": "number", + "nativeSrc": "4790:2:19", + "nodeType": "YulLiteral", + "src": "4790:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4780:6:19", + "nodeType": "YulTypedName", + "src": "4780:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4806:63:19", + "nodeType": "YulAssignment", + "src": "4806:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4841:9:19", + "nodeType": "YulIdentifier", + "src": "4841:9:19" + }, + { + "name": "offset", + "nativeSrc": "4852:6:19", + "nodeType": "YulIdentifier", + "src": "4852:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4837:3:19", + "nodeType": "YulIdentifier", + "src": "4837:3:19" + }, + "nativeSrc": "4837:22:19", + "nodeType": "YulFunctionCall", + "src": "4837:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4861:7:19", + "nodeType": "YulIdentifier", + "src": "4861:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4816:20:19", + "nodeType": "YulIdentifier", + "src": "4816:20:19" + }, + "nativeSrc": "4816:53:19", + "nodeType": "YulFunctionCall", + "src": "4816:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4806:6:19", + "nodeType": "YulIdentifier", + "src": "4806:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "4412:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4457:9:19", + "nodeType": "YulTypedName", + "src": "4457:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4468:7:19", + "nodeType": "YulTypedName", + "src": "4468:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4480:6:19", + "nodeType": "YulTypedName", + "src": "4480:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4488:6:19", + "nodeType": "YulTypedName", + "src": "4488:6:19", + "type": "" + } + ], + "src": "4412:474:19" + }, + { + "body": { + "nativeSrc": "4957:53:19", + "nodeType": "YulBlock", + "src": "4957:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4974:3:19", + "nodeType": "YulIdentifier", + "src": "4974:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4997:5:19", + "nodeType": "YulIdentifier", + "src": "4997:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4979:17:19", + "nodeType": "YulIdentifier", + "src": "4979:17:19" + }, + "nativeSrc": "4979:24:19", + "nodeType": "YulFunctionCall", + "src": "4979:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4967:6:19", + "nodeType": "YulIdentifier", + "src": "4967:6:19" + }, + "nativeSrc": "4967:37:19", + "nodeType": "YulFunctionCall", + "src": "4967:37:19" + }, + "nativeSrc": "4967:37:19", + "nodeType": "YulExpressionStatement", + "src": "4967:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4892:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4945:5:19", + "nodeType": "YulTypedName", + "src": "4945:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4952:3:19", + "nodeType": "YulTypedName", + "src": "4952:3:19", + "type": "" + } + ], + "src": "4892:118:19" + }, + { + "body": { + "nativeSrc": "5114:124:19", + "nodeType": "YulBlock", + "src": "5114:124:19", + "statements": [ + { + "nativeSrc": "5124:26:19", + "nodeType": "YulAssignment", + "src": "5124:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5136:9:19", + "nodeType": "YulIdentifier", + "src": "5136:9:19" + }, + { + "kind": "number", + "nativeSrc": "5147:2:19", + "nodeType": "YulLiteral", + "src": "5147:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5132:3:19", + "nodeType": "YulIdentifier", + "src": "5132:3:19" + }, + "nativeSrc": "5132:18:19", + "nodeType": "YulFunctionCall", + "src": "5132:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5124:4:19", + "nodeType": "YulIdentifier", + "src": "5124:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5204:6:19", + "nodeType": "YulIdentifier", + "src": "5204:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5217:9:19", + "nodeType": "YulIdentifier", + "src": "5217:9:19" + }, + { + "kind": "number", + "nativeSrc": "5228:1:19", + "nodeType": "YulLiteral", + "src": "5228:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5213:3:19", + "nodeType": "YulIdentifier", + "src": "5213:3:19" + }, + "nativeSrc": "5213:17:19", + "nodeType": "YulFunctionCall", + "src": "5213:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5160:43:19", + "nodeType": "YulIdentifier", + "src": "5160:43:19" + }, + "nativeSrc": "5160:71:19", + "nodeType": "YulFunctionCall", + "src": "5160:71:19" + }, + "nativeSrc": "5160:71:19", + "nodeType": "YulExpressionStatement", + "src": "5160:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "5016:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5086:9:19", + "nodeType": "YulTypedName", + "src": "5086:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5098:6:19", + "nodeType": "YulTypedName", + "src": "5098:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5109:4:19", + "nodeType": "YulTypedName", + "src": "5109:4:19", + "type": "" + } + ], + "src": "5016:222:19" + }, + { + "body": { + "nativeSrc": "5344:519:19", + "nodeType": "YulBlock", + "src": "5344:519:19", + "statements": [ + { + "body": { + "nativeSrc": "5390:83:19", + "nodeType": "YulBlock", + "src": "5390:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5392:77:19", + "nodeType": "YulIdentifier", + "src": "5392:77:19" + }, + "nativeSrc": "5392:79:19", + "nodeType": "YulFunctionCall", + "src": "5392:79:19" + }, + "nativeSrc": "5392:79:19", + "nodeType": "YulExpressionStatement", + "src": "5392:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5365:7:19", + "nodeType": "YulIdentifier", + "src": "5365:7:19" + }, + { + "name": "headStart", + "nativeSrc": "5374:9:19", + "nodeType": "YulIdentifier", + "src": "5374:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5361:3:19", + "nodeType": "YulIdentifier", + "src": "5361:3:19" + }, + "nativeSrc": "5361:23:19", + "nodeType": "YulFunctionCall", + "src": "5361:23:19" + }, + { + "kind": "number", + "nativeSrc": "5386:2:19", + "nodeType": "YulLiteral", + "src": "5386:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5357:3:19", + "nodeType": "YulIdentifier", + "src": "5357:3:19" + }, + "nativeSrc": "5357:32:19", + "nodeType": "YulFunctionCall", + "src": "5357:32:19" + }, + "nativeSrc": "5354:119:19", + "nodeType": "YulIf", + "src": "5354:119:19" + }, + { + "nativeSrc": "5483:117:19", + "nodeType": "YulBlock", + "src": "5483:117:19", + "statements": [ + { + "nativeSrc": "5498:15:19", + "nodeType": "YulVariableDeclaration", + "src": "5498:15:19", + "value": { + "kind": "number", + "nativeSrc": "5512:1:19", + "nodeType": "YulLiteral", + "src": "5512:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5502:6:19", + "nodeType": "YulTypedName", + "src": "5502:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5527:63:19", + "nodeType": "YulAssignment", + "src": "5527:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5562:9:19", + "nodeType": "YulIdentifier", + "src": "5562:9:19" + }, + { + "name": "offset", + "nativeSrc": "5573:6:19", + "nodeType": "YulIdentifier", + "src": "5573:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5558:3:19", + "nodeType": "YulIdentifier", + "src": "5558:3:19" + }, + "nativeSrc": "5558:22:19", + "nodeType": "YulFunctionCall", + "src": "5558:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5582:7:19", + "nodeType": "YulIdentifier", + "src": "5582:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5537:20:19", + "nodeType": "YulIdentifier", + "src": "5537:20:19" + }, + "nativeSrc": "5537:53:19", + "nodeType": "YulFunctionCall", + "src": "5537:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5527:6:19", + "nodeType": "YulIdentifier", + "src": "5527:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5610:118:19", + "nodeType": "YulBlock", + "src": "5610:118:19", + "statements": [ + { + "nativeSrc": "5625:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5625:16:19", + "value": { + "kind": "number", + "nativeSrc": "5639:2:19", + "nodeType": "YulLiteral", + "src": "5639:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5629:6:19", + "nodeType": "YulTypedName", + "src": "5629:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5655:63:19", + "nodeType": "YulAssignment", + "src": "5655:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5690:9:19", + "nodeType": "YulIdentifier", + "src": "5690:9:19" + }, + { + "name": "offset", + "nativeSrc": "5701:6:19", + "nodeType": "YulIdentifier", + "src": "5701:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5686:3:19", + "nodeType": "YulIdentifier", + "src": "5686:3:19" + }, + "nativeSrc": "5686:22:19", + "nodeType": "YulFunctionCall", + "src": "5686:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5710:7:19", + "nodeType": "YulIdentifier", + "src": "5710:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5665:20:19", + "nodeType": "YulIdentifier", + "src": "5665:20:19" + }, + "nativeSrc": "5665:53:19", + "nodeType": "YulFunctionCall", + "src": "5665:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5655:6:19", + "nodeType": "YulIdentifier", + "src": "5655:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5738:118:19", + "nodeType": "YulBlock", + "src": "5738:118:19", + "statements": [ + { + "nativeSrc": "5753:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5753:16:19", + "value": { + "kind": "number", + "nativeSrc": "5767:2:19", + "nodeType": "YulLiteral", + "src": "5767:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5757:6:19", + "nodeType": "YulTypedName", + "src": "5757:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5783:63:19", + "nodeType": "YulAssignment", + "src": "5783:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5818:9:19", + "nodeType": "YulIdentifier", + "src": "5818:9:19" + }, + { + "name": "offset", + "nativeSrc": "5829:6:19", + "nodeType": "YulIdentifier", + "src": "5829:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5814:3:19", + "nodeType": "YulIdentifier", + "src": "5814:3:19" + }, + "nativeSrc": "5814:22:19", + "nodeType": "YulFunctionCall", + "src": "5814:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5838:7:19", + "nodeType": "YulIdentifier", + "src": "5838:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5793:20:19", + "nodeType": "YulIdentifier", + "src": "5793:20:19" + }, + "nativeSrc": "5793:53:19", + "nodeType": "YulFunctionCall", + "src": "5793:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5783:6:19", + "nodeType": "YulIdentifier", + "src": "5783:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "5244:619:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5298:9:19", + "nodeType": "YulTypedName", + "src": "5298:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5309:7:19", + "nodeType": "YulTypedName", + "src": "5309:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5321:6:19", + "nodeType": "YulTypedName", + "src": "5321:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5329:6:19", + "nodeType": "YulTypedName", + "src": "5329:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5337:6:19", + "nodeType": "YulTypedName", + "src": "5337:6:19", + "type": "" + } + ], + "src": "5244:619:19" + }, + { + "body": { + "nativeSrc": "5935:263:19", + "nodeType": "YulBlock", + "src": "5935:263:19", + "statements": [ + { + "body": { + "nativeSrc": "5981:83:19", + "nodeType": "YulBlock", + "src": "5981:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5983:77:19", + "nodeType": "YulIdentifier", + "src": "5983:77:19" + }, + "nativeSrc": "5983:79:19", + "nodeType": "YulFunctionCall", + "src": "5983:79:19" + }, + "nativeSrc": "5983:79:19", + "nodeType": "YulExpressionStatement", + "src": "5983:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5956:7:19", + "nodeType": "YulIdentifier", + "src": "5956:7:19" + }, + { + "name": "headStart", + "nativeSrc": "5965:9:19", + "nodeType": "YulIdentifier", + "src": "5965:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5952:3:19", + "nodeType": "YulIdentifier", + "src": "5952:3:19" + }, + "nativeSrc": "5952:23:19", + "nodeType": "YulFunctionCall", + "src": "5952:23:19" + }, + { + "kind": "number", + "nativeSrc": "5977:2:19", + "nodeType": "YulLiteral", + "src": "5977:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5948:3:19", + "nodeType": "YulIdentifier", + "src": "5948:3:19" + }, + "nativeSrc": "5948:32:19", + "nodeType": "YulFunctionCall", + "src": "5948:32:19" + }, + "nativeSrc": "5945:119:19", + "nodeType": "YulIf", + "src": "5945:119:19" + }, + { + "nativeSrc": "6074:117:19", + "nodeType": "YulBlock", + "src": "6074:117:19", + "statements": [ + { + "nativeSrc": "6089:15:19", + "nodeType": "YulVariableDeclaration", + "src": "6089:15:19", + "value": { + "kind": "number", + "nativeSrc": "6103:1:19", + "nodeType": "YulLiteral", + "src": "6103:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6093:6:19", + "nodeType": "YulTypedName", + "src": "6093:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "6118:63:19", + "nodeType": "YulAssignment", + "src": "6118:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6153:9:19", + "nodeType": "YulIdentifier", + "src": "6153:9:19" + }, + { + "name": "offset", + "nativeSrc": "6164:6:19", + "nodeType": "YulIdentifier", + "src": "6164:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6149:3:19", + "nodeType": "YulIdentifier", + "src": "6149:3:19" + }, + "nativeSrc": "6149:22:19", + "nodeType": "YulFunctionCall", + "src": "6149:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "6173:7:19", + "nodeType": "YulIdentifier", + "src": "6173:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6128:20:19", + "nodeType": "YulIdentifier", + "src": "6128:20:19" + }, + "nativeSrc": "6128:53:19", + "nodeType": "YulFunctionCall", + "src": "6128:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6118:6:19", + "nodeType": "YulIdentifier", + "src": "6118:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "5869:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5905:9:19", + "nodeType": "YulTypedName", + "src": "5905:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5916:7:19", + "nodeType": "YulTypedName", + "src": "5916:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5928:6:19", + "nodeType": "YulTypedName", + "src": "5928:6:19", + "type": "" + } + ], + "src": "5869:329:19" + }, + { + "body": { + "nativeSrc": "6293:28:19", + "nodeType": "YulBlock", + "src": "6293:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6310:1:19", + "nodeType": "YulLiteral", + "src": "6310:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6313:1:19", + "nodeType": "YulLiteral", + "src": "6313:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6303:6:19", + "nodeType": "YulIdentifier", + "src": "6303:6:19" + }, + "nativeSrc": "6303:12:19", + "nodeType": "YulFunctionCall", + "src": "6303:12:19" + }, + "nativeSrc": "6303:12:19", + "nodeType": "YulExpressionStatement", + "src": "6303:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "6204:117:19", + "nodeType": "YulFunctionDefinition", + "src": "6204:117:19" + }, + { + "body": { + "nativeSrc": "6416:28:19", + "nodeType": "YulBlock", + "src": "6416:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6433:1:19", + "nodeType": "YulLiteral", + "src": "6433:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6436:1:19", + "nodeType": "YulLiteral", + "src": "6436:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6426:6:19", + "nodeType": "YulIdentifier", + "src": "6426:6:19" + }, + "nativeSrc": "6426:12:19", + "nodeType": "YulFunctionCall", + "src": "6426:12:19" + }, + "nativeSrc": "6426:12:19", + "nodeType": "YulExpressionStatement", + "src": "6426:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "6327:117:19", + "nodeType": "YulFunctionDefinition", + "src": "6327:117:19" + }, + { + "body": { + "nativeSrc": "6478:152:19", + "nodeType": "YulBlock", + "src": "6478:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6495:1:19", + "nodeType": "YulLiteral", + "src": "6495:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6498:77:19", + "nodeType": "YulLiteral", + "src": "6498:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6488:6:19", + "nodeType": "YulIdentifier", + "src": "6488:6:19" + }, + "nativeSrc": "6488:88:19", + "nodeType": "YulFunctionCall", + "src": "6488:88:19" + }, + "nativeSrc": "6488:88:19", + "nodeType": "YulExpressionStatement", + "src": "6488:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6592:1:19", + "nodeType": "YulLiteral", + "src": "6592:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6595:4:19", + "nodeType": "YulLiteral", + "src": "6595:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6585:6:19", + "nodeType": "YulIdentifier", + "src": "6585:6:19" + }, + "nativeSrc": "6585:15:19", + "nodeType": "YulFunctionCall", + "src": "6585:15:19" + }, + "nativeSrc": "6585:15:19", + "nodeType": "YulExpressionStatement", + "src": "6585:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6616:1:19", + "nodeType": "YulLiteral", + "src": "6616:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6619:4:19", + "nodeType": "YulLiteral", + "src": "6619:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6609:6:19", + "nodeType": "YulIdentifier", + "src": "6609:6:19" + }, + "nativeSrc": "6609:15:19", + "nodeType": "YulFunctionCall", + "src": "6609:15:19" + }, + "nativeSrc": "6609:15:19", + "nodeType": "YulExpressionStatement", + "src": "6609:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6450:180:19", + "nodeType": "YulFunctionDefinition", + "src": "6450:180:19" + }, + { + "body": { + "nativeSrc": "6679:238:19", + "nodeType": "YulBlock", + "src": "6679:238:19", + "statements": [ + { + "nativeSrc": "6689:58:19", + "nodeType": "YulVariableDeclaration", + "src": "6689:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6711:6:19", + "nodeType": "YulIdentifier", + "src": "6711:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6741:4:19", + "nodeType": "YulIdentifier", + "src": "6741:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6719:21:19", + "nodeType": "YulIdentifier", + "src": "6719:21:19" + }, + "nativeSrc": "6719:27:19", + "nodeType": "YulFunctionCall", + "src": "6719:27:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6707:3:19", + "nodeType": "YulIdentifier", + "src": "6707:3:19" + }, + "nativeSrc": "6707:40:19", + "nodeType": "YulFunctionCall", + "src": "6707:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6693:10:19", + "nodeType": "YulTypedName", + "src": "6693:10:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6858:22:19", + "nodeType": "YulBlock", + "src": "6858:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6860:16:19", + "nodeType": "YulIdentifier", + "src": "6860:16:19" + }, + "nativeSrc": "6860:18:19", + "nodeType": "YulFunctionCall", + "src": "6860:18:19" + }, + "nativeSrc": "6860:18:19", + "nodeType": "YulExpressionStatement", + "src": "6860:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6801:10:19", + "nodeType": "YulIdentifier", + "src": "6801:10:19" + }, + { + "kind": "number", + "nativeSrc": "6813:18:19", + "nodeType": "YulLiteral", + "src": "6813:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6798:2:19", + "nodeType": "YulIdentifier", + "src": "6798:2:19" + }, + "nativeSrc": "6798:34:19", + "nodeType": "YulFunctionCall", + "src": "6798:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6837:10:19", + "nodeType": "YulIdentifier", + "src": "6837:10:19" + }, + { + "name": "memPtr", + "nativeSrc": "6849:6:19", + "nodeType": "YulIdentifier", + "src": "6849:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6834:2:19", + "nodeType": "YulIdentifier", + "src": "6834:2:19" + }, + "nativeSrc": "6834:22:19", + "nodeType": "YulFunctionCall", + "src": "6834:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6795:2:19", + "nodeType": "YulIdentifier", + "src": "6795:2:19" + }, + "nativeSrc": "6795:62:19", + "nodeType": "YulFunctionCall", + "src": "6795:62:19" + }, + "nativeSrc": "6792:88:19", + "nodeType": "YulIf", + "src": "6792:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6896:2:19", + "nodeType": "YulLiteral", + "src": "6896:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6900:10:19", + "nodeType": "YulIdentifier", + "src": "6900:10:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6889:6:19", + "nodeType": "YulIdentifier", + "src": "6889:6:19" + }, + "nativeSrc": "6889:22:19", + "nodeType": "YulFunctionCall", + "src": "6889:22:19" + }, + "nativeSrc": "6889:22:19", + "nodeType": "YulExpressionStatement", + "src": "6889:22:19" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6636:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6665:6:19", + "nodeType": "YulTypedName", + "src": "6665:6:19", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6673:4:19", + "nodeType": "YulTypedName", + "src": "6673:4:19", + "type": "" + } + ], + "src": "6636:281:19" + }, + { + "body": { + "nativeSrc": "6964:88:19", + "nodeType": "YulBlock", + "src": "6964:88:19", + "statements": [ + { + "nativeSrc": "6974:30:19", + "nodeType": "YulAssignment", + "src": "6974:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6984:18:19", + "nodeType": "YulIdentifier", + "src": "6984:18:19" + }, + "nativeSrc": "6984:20:19", + "nodeType": "YulFunctionCall", + "src": "6984:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6974:6:19", + "nodeType": "YulIdentifier", + "src": "6974:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7033:6:19", + "nodeType": "YulIdentifier", + "src": "7033:6:19" + }, + { + "name": "size", + "nativeSrc": "7041:4:19", + "nodeType": "YulIdentifier", + "src": "7041:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "7013:19:19", + "nodeType": "YulIdentifier", + "src": "7013:19:19" + }, + "nativeSrc": "7013:33:19", + "nodeType": "YulFunctionCall", + "src": "7013:33:19" + }, + "nativeSrc": "7013:33:19", + "nodeType": "YulExpressionStatement", + "src": "7013:33:19" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6923:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6948:4:19", + "nodeType": "YulTypedName", + "src": "6948:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6957:6:19", + "nodeType": "YulTypedName", + "src": "6957:6:19", + "type": "" + } + ], + "src": "6923:129:19" + }, + { + "body": { + "nativeSrc": "7125:241:19", + "nodeType": "YulBlock", + "src": "7125:241:19", + "statements": [ + { + "body": { + "nativeSrc": "7230:22:19", + "nodeType": "YulBlock", + "src": "7230:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7232:16:19", + "nodeType": "YulIdentifier", + "src": "7232:16:19" + }, + "nativeSrc": "7232:18:19", + "nodeType": "YulFunctionCall", + "src": "7232:18:19" + }, + "nativeSrc": "7232:18:19", + "nodeType": "YulExpressionStatement", + "src": "7232:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7202:6:19", + "nodeType": "YulIdentifier", + "src": "7202:6:19" + }, + { + "kind": "number", + "nativeSrc": "7210:18:19", + "nodeType": "YulLiteral", + "src": "7210:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7199:2:19", + "nodeType": "YulIdentifier", + "src": "7199:2:19" + }, + "nativeSrc": "7199:30:19", + "nodeType": "YulFunctionCall", + "src": "7199:30:19" + }, + "nativeSrc": "7196:56:19", + "nodeType": "YulIf", + "src": "7196:56:19" + }, + { + "nativeSrc": "7262:37:19", + "nodeType": "YulAssignment", + "src": "7262:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7292:6:19", + "nodeType": "YulIdentifier", + "src": "7292:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7270:21:19", + "nodeType": "YulIdentifier", + "src": "7270:21:19" + }, + "nativeSrc": "7270:29:19", + "nodeType": "YulFunctionCall", + "src": "7270:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7262:4:19", + "nodeType": "YulIdentifier", + "src": "7262:4:19" + } + ] + }, + { + "nativeSrc": "7336:23:19", + "nodeType": "YulAssignment", + "src": "7336:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "7348:4:19", + "nodeType": "YulIdentifier", + "src": "7348:4:19" + }, + { + "kind": "number", + "nativeSrc": "7354:4:19", + "nodeType": "YulLiteral", + "src": "7354:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7344:3:19", + "nodeType": "YulIdentifier", + "src": "7344:3:19" + }, + "nativeSrc": "7344:15:19", + "nodeType": "YulFunctionCall", + "src": "7344:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7336:4:19", + "nodeType": "YulIdentifier", + "src": "7336:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7058:308:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "7109:6:19", + "nodeType": "YulTypedName", + "src": "7109:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "7120:4:19", + "nodeType": "YulTypedName", + "src": "7120:4:19", + "type": "" + } + ], + "src": "7058:308:19" + }, + { + "body": { + "nativeSrc": "7436:84:19", + "nodeType": "YulBlock", + "src": "7436:84:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7460:3:19", + "nodeType": "YulIdentifier", + "src": "7460:3:19" + }, + { + "name": "src", + "nativeSrc": "7465:3:19", + "nodeType": "YulIdentifier", + "src": "7465:3:19" + }, + { + "name": "length", + "nativeSrc": "7470:6:19", + "nodeType": "YulIdentifier", + "src": "7470:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "7447:12:19", + "nodeType": "YulIdentifier", + "src": "7447:12:19" + }, + "nativeSrc": "7447:30:19", + "nodeType": "YulFunctionCall", + "src": "7447:30:19" + }, + "nativeSrc": "7447:30:19", + "nodeType": "YulExpressionStatement", + "src": "7447:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7497:3:19", + "nodeType": "YulIdentifier", + "src": "7497:3:19" + }, + { + "name": "length", + "nativeSrc": "7502:6:19", + "nodeType": "YulIdentifier", + "src": "7502:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7493:3:19", + "nodeType": "YulIdentifier", + "src": "7493:3:19" + }, + "nativeSrc": "7493:16:19", + "nodeType": "YulFunctionCall", + "src": "7493:16:19" + }, + { + "kind": "number", + "nativeSrc": "7511:1:19", + "nodeType": "YulLiteral", + "src": "7511:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7486:6:19", + "nodeType": "YulIdentifier", + "src": "7486:6:19" + }, + "nativeSrc": "7486:27:19", + "nodeType": "YulFunctionCall", + "src": "7486:27:19" + }, + "nativeSrc": "7486:27:19", + "nodeType": "YulExpressionStatement", + "src": "7486:27:19" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7372:148:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7418:3:19", + "nodeType": "YulTypedName", + "src": "7418:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "7423:3:19", + "nodeType": "YulTypedName", + "src": "7423:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7428:6:19", + "nodeType": "YulTypedName", + "src": "7428:6:19", + "type": "" + } + ], + "src": "7372:148:19" + }, + { + "body": { + "nativeSrc": "7610:341:19", + "nodeType": "YulBlock", + "src": "7610:341:19", + "statements": [ + { + "nativeSrc": "7620:75:19", + "nodeType": "YulAssignment", + "src": "7620:75:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7687:6:19", + "nodeType": "YulIdentifier", + "src": "7687:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7645:41:19", + "nodeType": "YulIdentifier", + "src": "7645:41:19" + }, + "nativeSrc": "7645:49:19", + "nodeType": "YulFunctionCall", + "src": "7645:49:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7629:15:19", + "nodeType": "YulIdentifier", + "src": "7629:15:19" + }, + "nativeSrc": "7629:66:19", + "nodeType": "YulFunctionCall", + "src": "7629:66:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7620:5:19", + "nodeType": "YulIdentifier", + "src": "7620:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7711:5:19", + "nodeType": "YulIdentifier", + "src": "7711:5:19" + }, + { + "name": "length", + "nativeSrc": "7718:6:19", + "nodeType": "YulIdentifier", + "src": "7718:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7704:6:19", + "nodeType": "YulIdentifier", + "src": "7704:6:19" + }, + "nativeSrc": "7704:21:19", + "nodeType": "YulFunctionCall", + "src": "7704:21:19" + }, + "nativeSrc": "7704:21:19", + "nodeType": "YulExpressionStatement", + "src": "7704:21:19" + }, + { + "nativeSrc": "7734:27:19", + "nodeType": "YulVariableDeclaration", + "src": "7734:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7749:5:19", + "nodeType": "YulIdentifier", + "src": "7749:5:19" + }, + { + "kind": "number", + "nativeSrc": "7756:4:19", + "nodeType": "YulLiteral", + "src": "7756:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7745:3:19", + "nodeType": "YulIdentifier", + "src": "7745:3:19" + }, + "nativeSrc": "7745:16:19", + "nodeType": "YulFunctionCall", + "src": "7745:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7738:3:19", + "nodeType": "YulTypedName", + "src": "7738:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7799:83:19", + "nodeType": "YulBlock", + "src": "7799:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7801:77:19", + "nodeType": "YulIdentifier", + "src": "7801:77:19" + }, + "nativeSrc": "7801:79:19", + "nodeType": "YulFunctionCall", + "src": "7801:79:19" + }, + "nativeSrc": "7801:79:19", + "nodeType": "YulExpressionStatement", + "src": "7801:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7780:3:19", + "nodeType": "YulIdentifier", + "src": "7780:3:19" + }, + { + "name": "length", + "nativeSrc": "7785:6:19", + "nodeType": "YulIdentifier", + "src": "7785:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7776:3:19", + "nodeType": "YulIdentifier", + "src": "7776:3:19" + }, + "nativeSrc": "7776:16:19", + "nodeType": "YulFunctionCall", + "src": "7776:16:19" + }, + { + "name": "end", + "nativeSrc": "7794:3:19", + "nodeType": "YulIdentifier", + "src": "7794:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7773:2:19", + "nodeType": "YulIdentifier", + "src": "7773:2:19" + }, + "nativeSrc": "7773:25:19", + "nodeType": "YulFunctionCall", + "src": "7773:25:19" + }, + "nativeSrc": "7770:112:19", + "nodeType": "YulIf", + "src": "7770:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7928:3:19", + "nodeType": "YulIdentifier", + "src": "7928:3:19" + }, + { + "name": "dst", + "nativeSrc": "7933:3:19", + "nodeType": "YulIdentifier", + "src": "7933:3:19" + }, + { + "name": "length", + "nativeSrc": "7938:6:19", + "nodeType": "YulIdentifier", + "src": "7938:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7891:36:19", + "nodeType": "YulIdentifier", + "src": "7891:36:19" + }, + "nativeSrc": "7891:54:19", + "nodeType": "YulFunctionCall", + "src": "7891:54:19" + }, + "nativeSrc": "7891:54:19", + "nodeType": "YulExpressionStatement", + "src": "7891:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "7526:425:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7583:3:19", + "nodeType": "YulTypedName", + "src": "7583:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7588:6:19", + "nodeType": "YulTypedName", + "src": "7588:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7596:3:19", + "nodeType": "YulTypedName", + "src": "7596:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7604:5:19", + "nodeType": "YulTypedName", + "src": "7604:5:19", + "type": "" + } + ], + "src": "7526:425:19" + }, + { + "body": { + "nativeSrc": "8033:278:19", + "nodeType": "YulBlock", + "src": "8033:278:19", + "statements": [ + { + "body": { + "nativeSrc": "8082:83:19", + "nodeType": "YulBlock", + "src": "8082:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "8084:77:19", + "nodeType": "YulIdentifier", + "src": "8084:77:19" + }, + "nativeSrc": "8084:79:19", + "nodeType": "YulFunctionCall", + "src": "8084:79:19" + }, + "nativeSrc": "8084:79:19", + "nodeType": "YulExpressionStatement", + "src": "8084:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8061:6:19", + "nodeType": "YulIdentifier", + "src": "8061:6:19" + }, + { + "kind": "number", + "nativeSrc": "8069:4:19", + "nodeType": "YulLiteral", + "src": "8069:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8057:3:19", + "nodeType": "YulIdentifier", + "src": "8057:3:19" + }, + "nativeSrc": "8057:17:19", + "nodeType": "YulFunctionCall", + "src": "8057:17:19" + }, + { + "name": "end", + "nativeSrc": "8076:3:19", + "nodeType": "YulIdentifier", + "src": "8076:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8053:3:19", + "nodeType": "YulIdentifier", + "src": "8053:3:19" + }, + "nativeSrc": "8053:27:19", + "nodeType": "YulFunctionCall", + "src": "8053:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8046:6:19", + "nodeType": "YulIdentifier", + "src": "8046:6:19" + }, + "nativeSrc": "8046:35:19", + "nodeType": "YulFunctionCall", + "src": "8046:35:19" + }, + "nativeSrc": "8043:122:19", + "nodeType": "YulIf", + "src": "8043:122:19" + }, + { + "nativeSrc": "8174:34:19", + "nodeType": "YulVariableDeclaration", + "src": "8174:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8201:6:19", + "nodeType": "YulIdentifier", + "src": "8201:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8188:12:19", + "nodeType": "YulIdentifier", + "src": "8188:12:19" + }, + "nativeSrc": "8188:20:19", + "nodeType": "YulFunctionCall", + "src": "8188:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8178:6:19", + "nodeType": "YulTypedName", + "src": "8178:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "8217:88:19", + "nodeType": "YulAssignment", + "src": "8217:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8278:6:19", + "nodeType": "YulIdentifier", + "src": "8278:6:19" + }, + { + "kind": "number", + "nativeSrc": "8286:4:19", + "nodeType": "YulLiteral", + "src": "8286:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8274:3:19", + "nodeType": "YulIdentifier", + "src": "8274:3:19" + }, + "nativeSrc": "8274:17:19", + "nodeType": "YulFunctionCall", + "src": "8274:17:19" + }, + { + "name": "length", + "nativeSrc": "8293:6:19", + "nodeType": "YulIdentifier", + "src": "8293:6:19" + }, + { + "name": "end", + "nativeSrc": "8301:3:19", + "nodeType": "YulIdentifier", + "src": "8301:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "8226:47:19", + "nodeType": "YulIdentifier", + "src": "8226:47:19" + }, + "nativeSrc": "8226:79:19", + "nodeType": "YulFunctionCall", + "src": "8226:79:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8217:5:19", + "nodeType": "YulIdentifier", + "src": "8217:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "7971:340:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8011:6:19", + "nodeType": "YulTypedName", + "src": "8011:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8019:3:19", + "nodeType": "YulTypedName", + "src": "8019:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8027:5:19", + "nodeType": "YulTypedName", + "src": "8027:5:19", + "type": "" + } + ], + "src": "7971:340:19" + }, + { + "body": { + "nativeSrc": "8393:433:19", + "nodeType": "YulBlock", + "src": "8393:433:19", + "statements": [ + { + "body": { + "nativeSrc": "8439:83:19", + "nodeType": "YulBlock", + "src": "8439:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8441:77:19", + "nodeType": "YulIdentifier", + "src": "8441:77:19" + }, + "nativeSrc": "8441:79:19", + "nodeType": "YulFunctionCall", + "src": "8441:79:19" + }, + "nativeSrc": "8441:79:19", + "nodeType": "YulExpressionStatement", + "src": "8441:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8414:7:19", + "nodeType": "YulIdentifier", + "src": "8414:7:19" + }, + { + "name": "headStart", + "nativeSrc": "8423:9:19", + "nodeType": "YulIdentifier", + "src": "8423:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8410:3:19", + "nodeType": "YulIdentifier", + "src": "8410:3:19" + }, + "nativeSrc": "8410:23:19", + "nodeType": "YulFunctionCall", + "src": "8410:23:19" + }, + { + "kind": "number", + "nativeSrc": "8435:2:19", + "nodeType": "YulLiteral", + "src": "8435:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8406:3:19", + "nodeType": "YulIdentifier", + "src": "8406:3:19" + }, + "nativeSrc": "8406:32:19", + "nodeType": "YulFunctionCall", + "src": "8406:32:19" + }, + "nativeSrc": "8403:119:19", + "nodeType": "YulIf", + "src": "8403:119:19" + }, + { + "nativeSrc": "8532:287:19", + "nodeType": "YulBlock", + "src": "8532:287:19", + "statements": [ + { + "nativeSrc": "8547:45:19", + "nodeType": "YulVariableDeclaration", + "src": "8547:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8578:9:19", + "nodeType": "YulIdentifier", + "src": "8578:9:19" + }, + { + "kind": "number", + "nativeSrc": "8589:1:19", + "nodeType": "YulLiteral", + "src": "8589:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8574:3:19", + "nodeType": "YulIdentifier", + "src": "8574:3:19" + }, + "nativeSrc": "8574:17:19", + "nodeType": "YulFunctionCall", + "src": "8574:17:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8561:12:19", + "nodeType": "YulIdentifier", + "src": "8561:12:19" + }, + "nativeSrc": "8561:31:19", + "nodeType": "YulFunctionCall", + "src": "8561:31:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8551:6:19", + "nodeType": "YulTypedName", + "src": "8551:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8639:83:19", + "nodeType": "YulBlock", + "src": "8639:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "8641:77:19", + "nodeType": "YulIdentifier", + "src": "8641:77:19" + }, + "nativeSrc": "8641:79:19", + "nodeType": "YulFunctionCall", + "src": "8641:79:19" + }, + "nativeSrc": "8641:79:19", + "nodeType": "YulExpressionStatement", + "src": "8641:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8611:6:19", + "nodeType": "YulIdentifier", + "src": "8611:6:19" + }, + { + "kind": "number", + "nativeSrc": "8619:18:19", + "nodeType": "YulLiteral", + "src": "8619:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8608:2:19", + "nodeType": "YulIdentifier", + "src": "8608:2:19" + }, + "nativeSrc": "8608:30:19", + "nodeType": "YulFunctionCall", + "src": "8608:30:19" + }, + "nativeSrc": "8605:117:19", + "nodeType": "YulIf", + "src": "8605:117:19" + }, + { + "nativeSrc": "8736:73:19", + "nodeType": "YulAssignment", + "src": "8736:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8781:9:19", + "nodeType": "YulIdentifier", + "src": "8781:9:19" + }, + { + "name": "offset", + "nativeSrc": "8792:6:19", + "nodeType": "YulIdentifier", + "src": "8792:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8777:3:19", + "nodeType": "YulIdentifier", + "src": "8777:3:19" + }, + "nativeSrc": "8777:22:19", + "nodeType": "YulFunctionCall", + "src": "8777:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "8801:7:19", + "nodeType": "YulIdentifier", + "src": "8801:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "8746:30:19", + "nodeType": "YulIdentifier", + "src": "8746:30:19" + }, + "nativeSrc": "8746:63:19", + "nodeType": "YulFunctionCall", + "src": "8746:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8736:6:19", + "nodeType": "YulIdentifier", + "src": "8736:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "8317:509:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8363:9:19", + "nodeType": "YulTypedName", + "src": "8363:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8374:7:19", + "nodeType": "YulTypedName", + "src": "8374:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8386:6:19", + "nodeType": "YulTypedName", + "src": "8386:6:19", + "type": "" + } + ], + "src": "8317:509:19" + }, + { + "body": { + "nativeSrc": "8872:76:19", + "nodeType": "YulBlock", + "src": "8872:76:19", + "statements": [ + { + "body": { + "nativeSrc": "8926:16:19", + "nodeType": "YulBlock", + "src": "8926:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8935:1:19", + "nodeType": "YulLiteral", + "src": "8935:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8938:1:19", + "nodeType": "YulLiteral", + "src": "8938:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8928:6:19", + "nodeType": "YulIdentifier", + "src": "8928:6:19" + }, + "nativeSrc": "8928:12:19", + "nodeType": "YulFunctionCall", + "src": "8928:12:19" + }, + "nativeSrc": "8928:12:19", + "nodeType": "YulExpressionStatement", + "src": "8928:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8895:5:19", + "nodeType": "YulIdentifier", + "src": "8895:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8917:5:19", + "nodeType": "YulIdentifier", + "src": "8917:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "8902:14:19", + "nodeType": "YulIdentifier", + "src": "8902:14:19" + }, + "nativeSrc": "8902:21:19", + "nodeType": "YulFunctionCall", + "src": "8902:21:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8892:2:19", + "nodeType": "YulIdentifier", + "src": "8892:2:19" + }, + "nativeSrc": "8892:32:19", + "nodeType": "YulFunctionCall", + "src": "8892:32:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8885:6:19", + "nodeType": "YulIdentifier", + "src": "8885:6:19" + }, + "nativeSrc": "8885:40:19", + "nodeType": "YulFunctionCall", + "src": "8885:40:19" + }, + "nativeSrc": "8882:60:19", + "nodeType": "YulIf", + "src": "8882:60:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "8832:116:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8865:5:19", + "nodeType": "YulTypedName", + "src": "8865:5:19", + "type": "" + } + ], + "src": "8832:116:19" + }, + { + "body": { + "nativeSrc": "9003:84:19", + "nodeType": "YulBlock", + "src": "9003:84:19", + "statements": [ + { + "nativeSrc": "9013:29:19", + "nodeType": "YulAssignment", + "src": "9013:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9035:6:19", + "nodeType": "YulIdentifier", + "src": "9035:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9022:12:19", + "nodeType": "YulIdentifier", + "src": "9022:12:19" + }, + "nativeSrc": "9022:20:19", + "nodeType": "YulFunctionCall", + "src": "9022:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9013:5:19", + "nodeType": "YulIdentifier", + "src": "9013:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9075:5:19", + "nodeType": "YulIdentifier", + "src": "9075:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "9051:23:19", + "nodeType": "YulIdentifier", + "src": "9051:23:19" + }, + "nativeSrc": "9051:30:19", + "nodeType": "YulFunctionCall", + "src": "9051:30:19" + }, + "nativeSrc": "9051:30:19", + "nodeType": "YulExpressionStatement", + "src": "9051:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "8954:133:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8981:6:19", + "nodeType": "YulTypedName", + "src": "8981:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8989:3:19", + "nodeType": "YulTypedName", + "src": "8989:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "8997:5:19", + "nodeType": "YulTypedName", + "src": "8997:5:19", + "type": "" + } + ], + "src": "8954:133:19" + }, + { + "body": { + "nativeSrc": "9173:388:19", + "nodeType": "YulBlock", + "src": "9173:388:19", + "statements": [ + { + "body": { + "nativeSrc": "9219:83:19", + "nodeType": "YulBlock", + "src": "9219:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9221:77:19", + "nodeType": "YulIdentifier", + "src": "9221:77:19" + }, + "nativeSrc": "9221:79:19", + "nodeType": "YulFunctionCall", + "src": "9221:79:19" + }, + "nativeSrc": "9221:79:19", + "nodeType": "YulExpressionStatement", + "src": "9221:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9194:7:19", + "nodeType": "YulIdentifier", + "src": "9194:7:19" + }, + { + "name": "headStart", + "nativeSrc": "9203:9:19", + "nodeType": "YulIdentifier", + "src": "9203:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9190:3:19", + "nodeType": "YulIdentifier", + "src": "9190:3:19" + }, + "nativeSrc": "9190:23:19", + "nodeType": "YulFunctionCall", + "src": "9190:23:19" + }, + { + "kind": "number", + "nativeSrc": "9215:2:19", + "nodeType": "YulLiteral", + "src": "9215:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9186:3:19", + "nodeType": "YulIdentifier", + "src": "9186:3:19" + }, + "nativeSrc": "9186:32:19", + "nodeType": "YulFunctionCall", + "src": "9186:32:19" + }, + "nativeSrc": "9183:119:19", + "nodeType": "YulIf", + "src": "9183:119:19" + }, + { + "nativeSrc": "9312:117:19", + "nodeType": "YulBlock", + "src": "9312:117:19", + "statements": [ + { + "nativeSrc": "9327:15:19", + "nodeType": "YulVariableDeclaration", + "src": "9327:15:19", + "value": { + "kind": "number", + "nativeSrc": "9341:1:19", + "nodeType": "YulLiteral", + "src": "9341:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9331:6:19", + "nodeType": "YulTypedName", + "src": "9331:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9356:63:19", + "nodeType": "YulAssignment", + "src": "9356:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9391:9:19", + "nodeType": "YulIdentifier", + "src": "9391:9:19" + }, + { + "name": "offset", + "nativeSrc": "9402:6:19", + "nodeType": "YulIdentifier", + "src": "9402:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9387:3:19", + "nodeType": "YulIdentifier", + "src": "9387:3:19" + }, + "nativeSrc": "9387:22:19", + "nodeType": "YulFunctionCall", + "src": "9387:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9411:7:19", + "nodeType": "YulIdentifier", + "src": "9411:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9366:20:19", + "nodeType": "YulIdentifier", + "src": "9366:20:19" + }, + "nativeSrc": "9366:53:19", + "nodeType": "YulFunctionCall", + "src": "9366:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9356:6:19", + "nodeType": "YulIdentifier", + "src": "9356:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "9439:115:19", + "nodeType": "YulBlock", + "src": "9439:115:19", + "statements": [ + { + "nativeSrc": "9454:16:19", + "nodeType": "YulVariableDeclaration", + "src": "9454:16:19", + "value": { + "kind": "number", + "nativeSrc": "9468:2:19", + "nodeType": "YulLiteral", + "src": "9468:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9458:6:19", + "nodeType": "YulTypedName", + "src": "9458:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9484:60:19", + "nodeType": "YulAssignment", + "src": "9484:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9516:9:19", + "nodeType": "YulIdentifier", + "src": "9516:9:19" + }, + { + "name": "offset", + "nativeSrc": "9527:6:19", + "nodeType": "YulIdentifier", + "src": "9527:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9512:3:19", + "nodeType": "YulIdentifier", + "src": "9512:3:19" + }, + "nativeSrc": "9512:22:19", + "nodeType": "YulFunctionCall", + "src": "9512:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9536:7:19", + "nodeType": "YulIdentifier", + "src": "9536:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "9494:17:19", + "nodeType": "YulIdentifier", + "src": "9494:17:19" + }, + "nativeSrc": "9494:50:19", + "nodeType": "YulFunctionCall", + "src": "9494:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9484:6:19", + "nodeType": "YulIdentifier", + "src": "9484:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "9093:468:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9135:9:19", + "nodeType": "YulTypedName", + "src": "9135:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9146:7:19", + "nodeType": "YulTypedName", + "src": "9146:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9158:6:19", + "nodeType": "YulTypedName", + "src": "9158:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9166:6:19", + "nodeType": "YulTypedName", + "src": "9166:6:19", + "type": "" + } + ], + "src": "9093:468:19" + }, + { + "body": { + "nativeSrc": "9633:241:19", + "nodeType": "YulBlock", + "src": "9633:241:19", + "statements": [ + { + "body": { + "nativeSrc": "9738:22:19", + "nodeType": "YulBlock", + "src": "9738:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "9740:16:19", + "nodeType": "YulIdentifier", + "src": "9740:16:19" + }, + "nativeSrc": "9740:18:19", + "nodeType": "YulFunctionCall", + "src": "9740:18:19" + }, + "nativeSrc": "9740:18:19", + "nodeType": "YulExpressionStatement", + "src": "9740:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9710:6:19", + "nodeType": "YulIdentifier", + "src": "9710:6:19" + }, + { + "kind": "number", + "nativeSrc": "9718:18:19", + "nodeType": "YulLiteral", + "src": "9718:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9707:2:19", + "nodeType": "YulIdentifier", + "src": "9707:2:19" + }, + "nativeSrc": "9707:30:19", + "nodeType": "YulFunctionCall", + "src": "9707:30:19" + }, + "nativeSrc": "9704:56:19", + "nodeType": "YulIf", + "src": "9704:56:19" + }, + { + "nativeSrc": "9770:37:19", + "nodeType": "YulAssignment", + "src": "9770:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9800:6:19", + "nodeType": "YulIdentifier", + "src": "9800:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "9778:21:19", + "nodeType": "YulIdentifier", + "src": "9778:21:19" + }, + "nativeSrc": "9778:29:19", + "nodeType": "YulFunctionCall", + "src": "9778:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9770:4:19", + "nodeType": "YulIdentifier", + "src": "9770:4:19" + } + ] + }, + { + "nativeSrc": "9844:23:19", + "nodeType": "YulAssignment", + "src": "9844:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "9856:4:19", + "nodeType": "YulIdentifier", + "src": "9856:4:19" + }, + { + "kind": "number", + "nativeSrc": "9862:4:19", + "nodeType": "YulLiteral", + "src": "9862:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9852:3:19", + "nodeType": "YulIdentifier", + "src": "9852:3:19" + }, + "nativeSrc": "9852:15:19", + "nodeType": "YulFunctionCall", + "src": "9852:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9844:4:19", + "nodeType": "YulIdentifier", + "src": "9844:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9567:307:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "9617:6:19", + "nodeType": "YulTypedName", + "src": "9617:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "9628:4:19", + "nodeType": "YulTypedName", + "src": "9628:4:19", + "type": "" + } + ], + "src": "9567:307:19" + }, + { + "body": { + "nativeSrc": "9963:340:19", + "nodeType": "YulBlock", + "src": "9963:340:19", + "statements": [ + { + "nativeSrc": "9973:74:19", + "nodeType": "YulAssignment", + "src": "9973:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "10039:6:19", + "nodeType": "YulIdentifier", + "src": "10039:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9998:40:19", + "nodeType": "YulIdentifier", + "src": "9998:40:19" + }, + "nativeSrc": "9998:48:19", + "nodeType": "YulFunctionCall", + "src": "9998:48:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9982:15:19", + "nodeType": "YulIdentifier", + "src": "9982:15:19" + }, + "nativeSrc": "9982:65:19", + "nodeType": "YulFunctionCall", + "src": "9982:65:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9973:5:19", + "nodeType": "YulIdentifier", + "src": "9973:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10063:5:19", + "nodeType": "YulIdentifier", + "src": "10063:5:19" + }, + { + "name": "length", + "nativeSrc": "10070:6:19", + "nodeType": "YulIdentifier", + "src": "10070:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10056:6:19", + "nodeType": "YulIdentifier", + "src": "10056:6:19" + }, + "nativeSrc": "10056:21:19", + "nodeType": "YulFunctionCall", + "src": "10056:21:19" + }, + "nativeSrc": "10056:21:19", + "nodeType": "YulExpressionStatement", + "src": "10056:21:19" + }, + { + "nativeSrc": "10086:27:19", + "nodeType": "YulVariableDeclaration", + "src": "10086:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10101:5:19", + "nodeType": "YulIdentifier", + "src": "10101:5:19" + }, + { + "kind": "number", + "nativeSrc": "10108:4:19", + "nodeType": "YulLiteral", + "src": "10108:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10097:3:19", + "nodeType": "YulIdentifier", + "src": "10097:3:19" + }, + "nativeSrc": "10097:16:19", + "nodeType": "YulFunctionCall", + "src": "10097:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "10090:3:19", + "nodeType": "YulTypedName", + "src": "10090:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10151:83:19", + "nodeType": "YulBlock", + "src": "10151:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "10153:77:19", + "nodeType": "YulIdentifier", + "src": "10153:77:19" + }, + "nativeSrc": "10153:79:19", + "nodeType": "YulFunctionCall", + "src": "10153:79:19" + }, + "nativeSrc": "10153:79:19", + "nodeType": "YulExpressionStatement", + "src": "10153:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "10132:3:19", + "nodeType": "YulIdentifier", + "src": "10132:3:19" + }, + { + "name": "length", + "nativeSrc": "10137:6:19", + "nodeType": "YulIdentifier", + "src": "10137:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10128:3:19", + "nodeType": "YulIdentifier", + "src": "10128:3:19" + }, + "nativeSrc": "10128:16:19", + "nodeType": "YulFunctionCall", + "src": "10128:16:19" + }, + { + "name": "end", + "nativeSrc": "10146:3:19", + "nodeType": "YulIdentifier", + "src": "10146:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10125:2:19", + "nodeType": "YulIdentifier", + "src": "10125:2:19" + }, + "nativeSrc": "10125:25:19", + "nodeType": "YulFunctionCall", + "src": "10125:25:19" + }, + "nativeSrc": "10122:112:19", + "nodeType": "YulIf", + "src": "10122:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "10280:3:19", + "nodeType": "YulIdentifier", + "src": "10280:3:19" + }, + { + "name": "dst", + "nativeSrc": "10285:3:19", + "nodeType": "YulIdentifier", + "src": "10285:3:19" + }, + { + "name": "length", + "nativeSrc": "10290:6:19", + "nodeType": "YulIdentifier", + "src": "10290:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "10243:36:19", + "nodeType": "YulIdentifier", + "src": "10243:36:19" + }, + "nativeSrc": "10243:54:19", + "nodeType": "YulFunctionCall", + "src": "10243:54:19" + }, + "nativeSrc": "10243:54:19", + "nodeType": "YulExpressionStatement", + "src": "10243:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9880:423:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "9936:3:19", + "nodeType": "YulTypedName", + "src": "9936:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9941:6:19", + "nodeType": "YulTypedName", + "src": "9941:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9949:3:19", + "nodeType": "YulTypedName", + "src": "9949:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9957:5:19", + "nodeType": "YulTypedName", + "src": "9957:5:19", + "type": "" + } + ], + "src": "9880:423:19" + }, + { + "body": { + "nativeSrc": "10383:277:19", + "nodeType": "YulBlock", + "src": "10383:277:19", + "statements": [ + { + "body": { + "nativeSrc": "10432:83:19", + "nodeType": "YulBlock", + "src": "10432:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "10434:77:19", + "nodeType": "YulIdentifier", + "src": "10434:77:19" + }, + "nativeSrc": "10434:79:19", + "nodeType": "YulFunctionCall", + "src": "10434:79:19" + }, + "nativeSrc": "10434:79:19", + "nodeType": "YulExpressionStatement", + "src": "10434:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10411:6:19", + "nodeType": "YulIdentifier", + "src": "10411:6:19" + }, + { + "kind": "number", + "nativeSrc": "10419:4:19", + "nodeType": "YulLiteral", + "src": "10419:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10407:3:19", + "nodeType": "YulIdentifier", + "src": "10407:3:19" + }, + "nativeSrc": "10407:17:19", + "nodeType": "YulFunctionCall", + "src": "10407:17:19" + }, + { + "name": "end", + "nativeSrc": "10426:3:19", + "nodeType": "YulIdentifier", + "src": "10426:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10403:3:19", + "nodeType": "YulIdentifier", + "src": "10403:3:19" + }, + "nativeSrc": "10403:27:19", + "nodeType": "YulFunctionCall", + "src": "10403:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10396:6:19", + "nodeType": "YulIdentifier", + "src": "10396:6:19" + }, + "nativeSrc": "10396:35:19", + "nodeType": "YulFunctionCall", + "src": "10396:35:19" + }, + "nativeSrc": "10393:122:19", + "nodeType": "YulIf", + "src": "10393:122:19" + }, + { + "nativeSrc": "10524:34:19", + "nodeType": "YulVariableDeclaration", + "src": "10524:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10551:6:19", + "nodeType": "YulIdentifier", + "src": "10551:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10538:12:19", + "nodeType": "YulIdentifier", + "src": "10538:12:19" + }, + "nativeSrc": "10538:20:19", + "nodeType": "YulFunctionCall", + "src": "10538:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10528:6:19", + "nodeType": "YulTypedName", + "src": "10528:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10567:87:19", + "nodeType": "YulAssignment", + "src": "10567:87:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10627:6:19", + "nodeType": "YulIdentifier", + "src": "10627:6:19" + }, + { + "kind": "number", + "nativeSrc": "10635:4:19", + "nodeType": "YulLiteral", + "src": "10635:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10623:3:19", + "nodeType": "YulIdentifier", + "src": "10623:3:19" + }, + "nativeSrc": "10623:17:19", + "nodeType": "YulFunctionCall", + "src": "10623:17:19" + }, + { + "name": "length", + "nativeSrc": "10642:6:19", + "nodeType": "YulIdentifier", + "src": "10642:6:19" + }, + { + "name": "end", + "nativeSrc": "10650:3:19", + "nodeType": "YulIdentifier", + "src": "10650:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "10576:46:19", + "nodeType": "YulIdentifier", + "src": "10576:46:19" + }, + "nativeSrc": "10576:78:19", + "nodeType": "YulFunctionCall", + "src": "10576:78:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "10567:5:19", + "nodeType": "YulIdentifier", + "src": "10567:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "10322:338:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "10361:6:19", + "nodeType": "YulTypedName", + "src": "10361:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "10369:3:19", + "nodeType": "YulTypedName", + "src": "10369:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "10377:5:19", + "nodeType": "YulTypedName", + "src": "10377:5:19", + "type": "" + } + ], + "src": "10322:338:19" + }, + { + "body": { + "nativeSrc": "10792:817:19", + "nodeType": "YulBlock", + "src": "10792:817:19", + "statements": [ + { + "body": { + "nativeSrc": "10839:83:19", + "nodeType": "YulBlock", + "src": "10839:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10841:77:19", + "nodeType": "YulIdentifier", + "src": "10841:77:19" + }, + "nativeSrc": "10841:79:19", + "nodeType": "YulFunctionCall", + "src": "10841:79:19" + }, + "nativeSrc": "10841:79:19", + "nodeType": "YulExpressionStatement", + "src": "10841:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10813:7:19", + "nodeType": "YulIdentifier", + "src": "10813:7:19" + }, + { + "name": "headStart", + "nativeSrc": "10822:9:19", + "nodeType": "YulIdentifier", + "src": "10822:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10809:3:19", + "nodeType": "YulIdentifier", + "src": "10809:3:19" + }, + "nativeSrc": "10809:23:19", + "nodeType": "YulFunctionCall", + "src": "10809:23:19" + }, + { + "kind": "number", + "nativeSrc": "10834:3:19", + "nodeType": "YulLiteral", + "src": "10834:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10805:3:19", + "nodeType": "YulIdentifier", + "src": "10805:3:19" + }, + "nativeSrc": "10805:33:19", + "nodeType": "YulFunctionCall", + "src": "10805:33:19" + }, + "nativeSrc": "10802:120:19", + "nodeType": "YulIf", + "src": "10802:120:19" + }, + { + "nativeSrc": "10932:117:19", + "nodeType": "YulBlock", + "src": "10932:117:19", + "statements": [ + { + "nativeSrc": "10947:15:19", + "nodeType": "YulVariableDeclaration", + "src": "10947:15:19", + "value": { + "kind": "number", + "nativeSrc": "10961:1:19", + "nodeType": "YulLiteral", + "src": "10961:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10951:6:19", + "nodeType": "YulTypedName", + "src": "10951:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10976:63:19", + "nodeType": "YulAssignment", + "src": "10976:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11011:9:19", + "nodeType": "YulIdentifier", + "src": "11011:9:19" + }, + { + "name": "offset", + "nativeSrc": "11022:6:19", + "nodeType": "YulIdentifier", + "src": "11022:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11007:3:19", + "nodeType": "YulIdentifier", + "src": "11007:3:19" + }, + "nativeSrc": "11007:22:19", + "nodeType": "YulFunctionCall", + "src": "11007:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11031:7:19", + "nodeType": "YulIdentifier", + "src": "11031:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10986:20:19", + "nodeType": "YulIdentifier", + "src": "10986:20:19" + }, + "nativeSrc": "10986:53:19", + "nodeType": "YulFunctionCall", + "src": "10986:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10976:6:19", + "nodeType": "YulIdentifier", + "src": "10976:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11059:118:19", + "nodeType": "YulBlock", + "src": "11059:118:19", + "statements": [ + { + "nativeSrc": "11074:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11074:16:19", + "value": { + "kind": "number", + "nativeSrc": "11088:2:19", + "nodeType": "YulLiteral", + "src": "11088:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11078:6:19", + "nodeType": "YulTypedName", + "src": "11078:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11104:63:19", + "nodeType": "YulAssignment", + "src": "11104:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11139:9:19", + "nodeType": "YulIdentifier", + "src": "11139:9:19" + }, + { + "name": "offset", + "nativeSrc": "11150:6:19", + "nodeType": "YulIdentifier", + "src": "11150:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11135:3:19", + "nodeType": "YulIdentifier", + "src": "11135:3:19" + }, + "nativeSrc": "11135:22:19", + "nodeType": "YulFunctionCall", + "src": "11135:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11159:7:19", + "nodeType": "YulIdentifier", + "src": "11159:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11114:20:19", + "nodeType": "YulIdentifier", + "src": "11114:20:19" + }, + "nativeSrc": "11114:53:19", + "nodeType": "YulFunctionCall", + "src": "11114:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11104:6:19", + "nodeType": "YulIdentifier", + "src": "11104:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11187:118:19", + "nodeType": "YulBlock", + "src": "11187:118:19", + "statements": [ + { + "nativeSrc": "11202:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11202:16:19", + "value": { + "kind": "number", + "nativeSrc": "11216:2:19", + "nodeType": "YulLiteral", + "src": "11216:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11206:6:19", + "nodeType": "YulTypedName", + "src": "11206:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11232:63:19", + "nodeType": "YulAssignment", + "src": "11232:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11267:9:19", + "nodeType": "YulIdentifier", + "src": "11267:9:19" + }, + { + "name": "offset", + "nativeSrc": "11278:6:19", + "nodeType": "YulIdentifier", + "src": "11278:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11263:3:19", + "nodeType": "YulIdentifier", + "src": "11263:3:19" + }, + "nativeSrc": "11263:22:19", + "nodeType": "YulFunctionCall", + "src": "11263:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11287:7:19", + "nodeType": "YulIdentifier", + "src": "11287:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "11242:20:19", + "nodeType": "YulIdentifier", + "src": "11242:20:19" + }, + "nativeSrc": "11242:53:19", + "nodeType": "YulFunctionCall", + "src": "11242:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11232:6:19", + "nodeType": "YulIdentifier", + "src": "11232:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11315:287:19", + "nodeType": "YulBlock", + "src": "11315:287:19", + "statements": [ + { + "nativeSrc": "11330:46:19", + "nodeType": "YulVariableDeclaration", + "src": "11330:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11361:9:19", + "nodeType": "YulIdentifier", + "src": "11361:9:19" + }, + { + "kind": "number", + "nativeSrc": "11372:2:19", + "nodeType": "YulLiteral", + "src": "11372:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11357:3:19", + "nodeType": "YulIdentifier", + "src": "11357:3:19" + }, + "nativeSrc": "11357:18:19", + "nodeType": "YulFunctionCall", + "src": "11357:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11344:12:19", + "nodeType": "YulIdentifier", + "src": "11344:12:19" + }, + "nativeSrc": "11344:32:19", + "nodeType": "YulFunctionCall", + "src": "11344:32:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11334:6:19", + "nodeType": "YulTypedName", + "src": "11334:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11423:83:19", + "nodeType": "YulBlock", + "src": "11423:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "11425:77:19", + "nodeType": "YulIdentifier", + "src": "11425:77:19" + }, + "nativeSrc": "11425:79:19", + "nodeType": "YulFunctionCall", + "src": "11425:79:19" + }, + "nativeSrc": "11425:79:19", + "nodeType": "YulExpressionStatement", + "src": "11425:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11395:6:19", + "nodeType": "YulIdentifier", + "src": "11395:6:19" + }, + { + "kind": "number", + "nativeSrc": "11403:18:19", + "nodeType": "YulLiteral", + "src": "11403:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11392:2:19", + "nodeType": "YulIdentifier", + "src": "11392:2:19" + }, + "nativeSrc": "11392:30:19", + "nodeType": "YulFunctionCall", + "src": "11392:30:19" + }, + "nativeSrc": "11389:117:19", + "nodeType": "YulIf", + "src": "11389:117:19" + }, + { + "nativeSrc": "11520:72:19", + "nodeType": "YulAssignment", + "src": "11520:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11564:9:19", + "nodeType": "YulIdentifier", + "src": "11564:9:19" + }, + { + "name": "offset", + "nativeSrc": "11575:6:19", + "nodeType": "YulIdentifier", + "src": "11575:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11560:3:19", + "nodeType": "YulIdentifier", + "src": "11560:3:19" + }, + "nativeSrc": "11560:22:19", + "nodeType": "YulFunctionCall", + "src": "11560:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11584:7:19", + "nodeType": "YulIdentifier", + "src": "11584:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11530:29:19", + "nodeType": "YulIdentifier", + "src": "11530:29:19" + }, + "nativeSrc": "11530:62:19", + "nodeType": "YulFunctionCall", + "src": "11530:62:19" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "11520:6:19", + "nodeType": "YulIdentifier", + "src": "11520:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "10666:943:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10738:9:19", + "nodeType": "YulTypedName", + "src": "10738:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10749:7:19", + "nodeType": "YulTypedName", + "src": "10749:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10761:6:19", + "nodeType": "YulTypedName", + "src": "10761:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10769:6:19", + "nodeType": "YulTypedName", + "src": "10769:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10777:6:19", + "nodeType": "YulTypedName", + "src": "10777:6:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "10785:6:19", + "nodeType": "YulTypedName", + "src": "10785:6:19", + "type": "" + } + ], + "src": "10666:943:19" + }, + { + "body": { + "nativeSrc": "11698:391:19", + "nodeType": "YulBlock", + "src": "11698:391:19", + "statements": [ + { + "body": { + "nativeSrc": "11744:83:19", + "nodeType": "YulBlock", + "src": "11744:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11746:77:19", + "nodeType": "YulIdentifier", + "src": "11746:77:19" + }, + "nativeSrc": "11746:79:19", + "nodeType": "YulFunctionCall", + "src": "11746:79:19" + }, + "nativeSrc": "11746:79:19", + "nodeType": "YulExpressionStatement", + "src": "11746:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11719:7:19", + "nodeType": "YulIdentifier", + "src": "11719:7:19" + }, + { + "name": "headStart", + "nativeSrc": "11728:9:19", + "nodeType": "YulIdentifier", + "src": "11728:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11715:3:19", + "nodeType": "YulIdentifier", + "src": "11715:3:19" + }, + "nativeSrc": "11715:23:19", + "nodeType": "YulFunctionCall", + "src": "11715:23:19" + }, + { + "kind": "number", + "nativeSrc": "11740:2:19", + "nodeType": "YulLiteral", + "src": "11740:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11711:3:19", + "nodeType": "YulIdentifier", + "src": "11711:3:19" + }, + "nativeSrc": "11711:32:19", + "nodeType": "YulFunctionCall", + "src": "11711:32:19" + }, + "nativeSrc": "11708:119:19", + "nodeType": "YulIf", + "src": "11708:119:19" + }, + { + "nativeSrc": "11837:117:19", + "nodeType": "YulBlock", + "src": "11837:117:19", + "statements": [ + { + "nativeSrc": "11852:15:19", + "nodeType": "YulVariableDeclaration", + "src": "11852:15:19", + "value": { + "kind": "number", + "nativeSrc": "11866:1:19", + "nodeType": "YulLiteral", + "src": "11866:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11856:6:19", + "nodeType": "YulTypedName", + "src": "11856:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11881:63:19", + "nodeType": "YulAssignment", + "src": "11881:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11916:9:19", + "nodeType": "YulIdentifier", + "src": "11916:9:19" + }, + { + "name": "offset", + "nativeSrc": "11927:6:19", + "nodeType": "YulIdentifier", + "src": "11927:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11912:3:19", + "nodeType": "YulIdentifier", + "src": "11912:3:19" + }, + "nativeSrc": "11912:22:19", + "nodeType": "YulFunctionCall", + "src": "11912:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11936:7:19", + "nodeType": "YulIdentifier", + "src": "11936:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11891:20:19", + "nodeType": "YulIdentifier", + "src": "11891:20:19" + }, + "nativeSrc": "11891:53:19", + "nodeType": "YulFunctionCall", + "src": "11891:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11881:6:19", + "nodeType": "YulIdentifier", + "src": "11881:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11964:118:19", + "nodeType": "YulBlock", + "src": "11964:118:19", + "statements": [ + { + "nativeSrc": "11979:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11979:16:19", + "value": { + "kind": "number", + "nativeSrc": "11993:2:19", + "nodeType": "YulLiteral", + "src": "11993:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11983:6:19", + "nodeType": "YulTypedName", + "src": "11983:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "12009:63:19", + "nodeType": "YulAssignment", + "src": "12009:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12044:9:19", + "nodeType": "YulIdentifier", + "src": "12044:9:19" + }, + { + "name": "offset", + "nativeSrc": "12055:6:19", + "nodeType": "YulIdentifier", + "src": "12055:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12040:3:19", + "nodeType": "YulIdentifier", + "src": "12040:3:19" + }, + "nativeSrc": "12040:22:19", + "nodeType": "YulFunctionCall", + "src": "12040:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "12064:7:19", + "nodeType": "YulIdentifier", + "src": "12064:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12019:20:19", + "nodeType": "YulIdentifier", + "src": "12019:20:19" + }, + "nativeSrc": "12019:53:19", + "nodeType": "YulFunctionCall", + "src": "12019:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12009:6:19", + "nodeType": "YulIdentifier", + "src": "12009:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "11615:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11660:9:19", + "nodeType": "YulTypedName", + "src": "11660:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11671:7:19", + "nodeType": "YulTypedName", + "src": "11671:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11683:6:19", + "nodeType": "YulTypedName", + "src": "11683:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11691:6:19", + "nodeType": "YulTypedName", + "src": "11691:6:19", + "type": "" + } + ], + "src": "11615:474:19" + }, + { + "body": { + "nativeSrc": "12123:152:19", + "nodeType": "YulBlock", + "src": "12123:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12140:1:19", + "nodeType": "YulLiteral", + "src": "12140:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12143:77:19", + "nodeType": "YulLiteral", + "src": "12143:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12133:6:19", + "nodeType": "YulIdentifier", + "src": "12133:6:19" + }, + "nativeSrc": "12133:88:19", + "nodeType": "YulFunctionCall", + "src": "12133:88:19" + }, + "nativeSrc": "12133:88:19", + "nodeType": "YulExpressionStatement", + "src": "12133:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12237:1:19", + "nodeType": "YulLiteral", + "src": "12237:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12240:4:19", + "nodeType": "YulLiteral", + "src": "12240:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12230:6:19", + "nodeType": "YulIdentifier", + "src": "12230:6:19" + }, + "nativeSrc": "12230:15:19", + "nodeType": "YulFunctionCall", + "src": "12230:15:19" + }, + "nativeSrc": "12230:15:19", + "nodeType": "YulExpressionStatement", + "src": "12230:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12261:1:19", + "nodeType": "YulLiteral", + "src": "12261:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12264:4:19", + "nodeType": "YulLiteral", + "src": "12264:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12254:6:19", + "nodeType": "YulIdentifier", + "src": "12254:6:19" + }, + "nativeSrc": "12254:15:19", + "nodeType": "YulFunctionCall", + "src": "12254:15:19" + }, + "nativeSrc": "12254:15:19", + "nodeType": "YulExpressionStatement", + "src": "12254:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "12095:180:19", + "nodeType": "YulFunctionDefinition", + "src": "12095:180:19" + }, + { + "body": { + "nativeSrc": "12332:269:19", + "nodeType": "YulBlock", + "src": "12332:269:19", + "statements": [ + { + "nativeSrc": "12342:22:19", + "nodeType": "YulAssignment", + "src": "12342:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12356:4:19", + "nodeType": "YulIdentifier", + "src": "12356:4:19" + }, + { + "kind": "number", + "nativeSrc": "12362:1:19", + "nodeType": "YulLiteral", + "src": "12362:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "12352:3:19", + "nodeType": "YulIdentifier", + "src": "12352:3:19" + }, + "nativeSrc": "12352:12:19", + "nodeType": "YulFunctionCall", + "src": "12352:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12342:6:19", + "nodeType": "YulIdentifier", + "src": "12342:6:19" + } + ] + }, + { + "nativeSrc": "12373:38:19", + "nodeType": "YulVariableDeclaration", + "src": "12373:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12403:4:19", + "nodeType": "YulIdentifier", + "src": "12403:4:19" + }, + { + "kind": "number", + "nativeSrc": "12409:1:19", + "nodeType": "YulLiteral", + "src": "12409:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12399:3:19", + "nodeType": "YulIdentifier", + "src": "12399:3:19" + }, + "nativeSrc": "12399:12:19", + "nodeType": "YulFunctionCall", + "src": "12399:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12377:18:19", + "nodeType": "YulTypedName", + "src": "12377:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12450:51:19", + "nodeType": "YulBlock", + "src": "12450:51:19", + "statements": [ + { + "nativeSrc": "12464:27:19", + "nodeType": "YulAssignment", + "src": "12464:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12478:6:19", + "nodeType": "YulIdentifier", + "src": "12478:6:19" + }, + { + "kind": "number", + "nativeSrc": "12486:4:19", + "nodeType": "YulLiteral", + "src": "12486:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12474:3:19", + "nodeType": "YulIdentifier", + "src": "12474:3:19" + }, + "nativeSrc": "12474:17:19", + "nodeType": "YulFunctionCall", + "src": "12474:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12464:6:19", + "nodeType": "YulIdentifier", + "src": "12464:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12430:18:19", + "nodeType": "YulIdentifier", + "src": "12430:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12423:6:19", + "nodeType": "YulIdentifier", + "src": "12423:6:19" + }, + "nativeSrc": "12423:26:19", + "nodeType": "YulFunctionCall", + "src": "12423:26:19" + }, + "nativeSrc": "12420:81:19", + "nodeType": "YulIf", + "src": "12420:81:19" + }, + { + "body": { + "nativeSrc": "12553:42:19", + "nodeType": "YulBlock", + "src": "12553:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "12567:16:19", + "nodeType": "YulIdentifier", + "src": "12567:16:19" + }, + "nativeSrc": "12567:18:19", + "nodeType": "YulFunctionCall", + "src": "12567:18:19" + }, + "nativeSrc": "12567:18:19", + "nodeType": "YulExpressionStatement", + "src": "12567:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12517:18:19", + "nodeType": "YulIdentifier", + "src": "12517:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12540:6:19", + "nodeType": "YulIdentifier", + "src": "12540:6:19" + }, + { + "kind": "number", + "nativeSrc": "12548:2:19", + "nodeType": "YulLiteral", + "src": "12548:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12537:2:19", + "nodeType": "YulIdentifier", + "src": "12537:2:19" + }, + "nativeSrc": "12537:14:19", + "nodeType": "YulFunctionCall", + "src": "12537:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "12514:2:19", + "nodeType": "YulIdentifier", + "src": "12514:2:19" + }, + "nativeSrc": "12514:38:19", + "nodeType": "YulFunctionCall", + "src": "12514:38:19" + }, + "nativeSrc": "12511:84:19", + "nodeType": "YulIf", + "src": "12511:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "12281:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "12316:4:19", + "nodeType": "YulTypedName", + "src": "12316:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "12325:6:19", + "nodeType": "YulTypedName", + "src": "12325:6:19", + "type": "" + } + ], + "src": "12281:320:19" + }, + { + "body": { + "nativeSrc": "12761:288:19", + "nodeType": "YulBlock", + "src": "12761:288:19", + "statements": [ + { + "nativeSrc": "12771:26:19", + "nodeType": "YulAssignment", + "src": "12771:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12783:9:19", + "nodeType": "YulIdentifier", + "src": "12783:9:19" + }, + { + "kind": "number", + "nativeSrc": "12794:2:19", + "nodeType": "YulLiteral", + "src": "12794:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12779:3:19", + "nodeType": "YulIdentifier", + "src": "12779:3:19" + }, + "nativeSrc": "12779:18:19", + "nodeType": "YulFunctionCall", + "src": "12779:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12771:4:19", + "nodeType": "YulIdentifier", + "src": "12771:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12851:6:19", + "nodeType": "YulIdentifier", + "src": "12851:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12864:9:19", + "nodeType": "YulIdentifier", + "src": "12864:9:19" + }, + { + "kind": "number", + "nativeSrc": "12875:1:19", + "nodeType": "YulLiteral", + "src": "12875:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12860:3:19", + "nodeType": "YulIdentifier", + "src": "12860:3:19" + }, + "nativeSrc": "12860:17:19", + "nodeType": "YulFunctionCall", + "src": "12860:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12807:43:19", + "nodeType": "YulIdentifier", + "src": "12807:43:19" + }, + "nativeSrc": "12807:71:19", + "nodeType": "YulFunctionCall", + "src": "12807:71:19" + }, + "nativeSrc": "12807:71:19", + "nodeType": "YulExpressionStatement", + "src": "12807:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "12932:6:19", + "nodeType": "YulIdentifier", + "src": "12932:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12945:9:19", + "nodeType": "YulIdentifier", + "src": "12945:9:19" + }, + { + "kind": "number", + "nativeSrc": "12956:2:19", + "nodeType": "YulLiteral", + "src": "12956:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12941:3:19", + "nodeType": "YulIdentifier", + "src": "12941:3:19" + }, + "nativeSrc": "12941:18:19", + "nodeType": "YulFunctionCall", + "src": "12941:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12888:43:19", + "nodeType": "YulIdentifier", + "src": "12888:43:19" + }, + "nativeSrc": "12888:72:19", + "nodeType": "YulFunctionCall", + "src": "12888:72:19" + }, + "nativeSrc": "12888:72:19", + "nodeType": "YulExpressionStatement", + "src": "12888:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "13014:6:19", + "nodeType": "YulIdentifier", + "src": "13014:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13027:9:19", + "nodeType": "YulIdentifier", + "src": "13027:9:19" + }, + { + "kind": "number", + "nativeSrc": "13038:2:19", + "nodeType": "YulLiteral", + "src": "13038:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13023:3:19", + "nodeType": "YulIdentifier", + "src": "13023:3:19" + }, + "nativeSrc": "13023:18:19", + "nodeType": "YulFunctionCall", + "src": "13023:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12970:43:19", + "nodeType": "YulIdentifier", + "src": "12970:43:19" + }, + "nativeSrc": "12970:72:19", + "nodeType": "YulFunctionCall", + "src": "12970:72:19" + }, + "nativeSrc": "12970:72:19", + "nodeType": "YulExpressionStatement", + "src": "12970:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "12607:442:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12717:9:19", + "nodeType": "YulTypedName", + "src": "12717:9:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12729:6:19", + "nodeType": "YulTypedName", + "src": "12729:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12737:6:19", + "nodeType": "YulTypedName", + "src": "12737:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12745:6:19", + "nodeType": "YulTypedName", + "src": "12745:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12756:4:19", + "nodeType": "YulTypedName", + "src": "12756:4:19", + "type": "" + } + ], + "src": "12607:442:19" + }, + { + "body": { + "nativeSrc": "13181:206:19", + "nodeType": "YulBlock", + "src": "13181:206:19", + "statements": [ + { + "nativeSrc": "13191:26:19", + "nodeType": "YulAssignment", + "src": "13191:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13203:9:19", + "nodeType": "YulIdentifier", + "src": "13203:9:19" + }, + { + "kind": "number", + "nativeSrc": "13214:2:19", + "nodeType": "YulLiteral", + "src": "13214:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13199:3:19", + "nodeType": "YulIdentifier", + "src": "13199:3:19" + }, + "nativeSrc": "13199:18:19", + "nodeType": "YulFunctionCall", + "src": "13199:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13191:4:19", + "nodeType": "YulIdentifier", + "src": "13191:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "13271:6:19", + "nodeType": "YulIdentifier", + "src": "13271:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13284:9:19", + "nodeType": "YulIdentifier", + "src": "13284:9:19" + }, + { + "kind": "number", + "nativeSrc": "13295:1:19", + "nodeType": "YulLiteral", + "src": "13295:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13280:3:19", + "nodeType": "YulIdentifier", + "src": "13280:3:19" + }, + "nativeSrc": "13280:17:19", + "nodeType": "YulFunctionCall", + "src": "13280:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "13227:43:19", + "nodeType": "YulIdentifier", + "src": "13227:43:19" + }, + "nativeSrc": "13227:71:19", + "nodeType": "YulFunctionCall", + "src": "13227:71:19" + }, + "nativeSrc": "13227:71:19", + "nodeType": "YulExpressionStatement", + "src": "13227:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "13352:6:19", + "nodeType": "YulIdentifier", + "src": "13352:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13365:9:19", + "nodeType": "YulIdentifier", + "src": "13365:9:19" + }, + { + "kind": "number", + "nativeSrc": "13376:2:19", + "nodeType": "YulLiteral", + "src": "13376:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13361:3:19", + "nodeType": "YulIdentifier", + "src": "13361:3:19" + }, + "nativeSrc": "13361:18:19", + "nodeType": "YulFunctionCall", + "src": "13361:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "13308:43:19", + "nodeType": "YulIdentifier", + "src": "13308:43:19" + }, + "nativeSrc": "13308:72:19", + "nodeType": "YulFunctionCall", + "src": "13308:72:19" + }, + "nativeSrc": "13308:72:19", + "nodeType": "YulExpressionStatement", + "src": "13308:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "13055:332:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13145:9:19", + "nodeType": "YulTypedName", + "src": "13145:9:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13157:6:19", + "nodeType": "YulTypedName", + "src": "13157:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13165:6:19", + "nodeType": "YulTypedName", + "src": "13165:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13176:4:19", + "nodeType": "YulTypedName", + "src": "13176:4:19", + "type": "" + } + ], + "src": "13055:332:19" + }, + { + "body": { + "nativeSrc": "13421:152:19", + "nodeType": "YulBlock", + "src": "13421:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13438:1:19", + "nodeType": "YulLiteral", + "src": "13438:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13441:77:19", + "nodeType": "YulLiteral", + "src": "13441:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13431:6:19", + "nodeType": "YulIdentifier", + "src": "13431:6:19" + }, + "nativeSrc": "13431:88:19", + "nodeType": "YulFunctionCall", + "src": "13431:88:19" + }, + "nativeSrc": "13431:88:19", + "nodeType": "YulExpressionStatement", + "src": "13431:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13535:1:19", + "nodeType": "YulLiteral", + "src": "13535:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "13538:4:19", + "nodeType": "YulLiteral", + "src": "13538:4:19", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13528:6:19", + "nodeType": "YulIdentifier", + "src": "13528:6:19" + }, + "nativeSrc": "13528:15:19", + "nodeType": "YulFunctionCall", + "src": "13528:15:19" + }, + "nativeSrc": "13528:15:19", + "nodeType": "YulExpressionStatement", + "src": "13528:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13559:1:19", + "nodeType": "YulLiteral", + "src": "13559:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13562:4:19", + "nodeType": "YulLiteral", + "src": "13562:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13552:6:19", + "nodeType": "YulIdentifier", + "src": "13552:6:19" + }, + "nativeSrc": "13552:15:19", + "nodeType": "YulFunctionCall", + "src": "13552:15:19" + }, + "nativeSrc": "13552:15:19", + "nodeType": "YulExpressionStatement", + "src": "13552:15:19" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "13393:180:19", + "nodeType": "YulFunctionDefinition", + "src": "13393:180:19" + }, + { + "body": { + "nativeSrc": "13622:190:19", + "nodeType": "YulBlock", + "src": "13622:190:19", + "statements": [ + { + "nativeSrc": "13632:33:19", + "nodeType": "YulAssignment", + "src": "13632:33:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13659:5:19", + "nodeType": "YulIdentifier", + "src": "13659:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "13641:17:19", + "nodeType": "YulIdentifier", + "src": "13641:17:19" + }, + "nativeSrc": "13641:24:19", + "nodeType": "YulFunctionCall", + "src": "13641:24:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13632:5:19", + "nodeType": "YulIdentifier", + "src": "13632:5:19" + } + ] + }, + { + "body": { + "nativeSrc": "13755:22:19", + "nodeType": "YulBlock", + "src": "13755:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "13757:16:19", + "nodeType": "YulIdentifier", + "src": "13757:16:19" + }, + "nativeSrc": "13757:18:19", + "nodeType": "YulFunctionCall", + "src": "13757:18:19" + }, + "nativeSrc": "13757:18:19", + "nodeType": "YulExpressionStatement", + "src": "13757:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13680:5:19", + "nodeType": "YulIdentifier", + "src": "13680:5:19" + }, + { + "kind": "number", + "nativeSrc": "13687:66:19", + "nodeType": "YulLiteral", + "src": "13687:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "13677:2:19", + "nodeType": "YulIdentifier", + "src": "13677:2:19" + }, + "nativeSrc": "13677:77:19", + "nodeType": "YulFunctionCall", + "src": "13677:77:19" + }, + "nativeSrc": "13674:103:19", + "nodeType": "YulIf", + "src": "13674:103:19" + }, + { + "nativeSrc": "13786:20:19", + "nodeType": "YulAssignment", + "src": "13786:20:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13797:5:19", + "nodeType": "YulIdentifier", + "src": "13797:5:19" + }, + { + "kind": "number", + "nativeSrc": "13804:1:19", + "nodeType": "YulLiteral", + "src": "13804:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13793:3:19", + "nodeType": "YulIdentifier", + "src": "13793:3:19" + }, + "nativeSrc": "13793:13:19", + "nodeType": "YulFunctionCall", + "src": "13793:13:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "13786:3:19", + "nodeType": "YulIdentifier", + "src": "13786:3:19" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "13579:233:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "13608:5:19", + "nodeType": "YulTypedName", + "src": "13608:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "13618:3:19", + "nodeType": "YulTypedName", + "src": "13618:3:19", + "type": "" + } + ], + "src": "13579:233:19" + }, + { + "body": { + "nativeSrc": "13932:34:19", + "nodeType": "YulBlock", + "src": "13932:34:19", + "statements": [ + { + "nativeSrc": "13942:18:19", + "nodeType": "YulAssignment", + "src": "13942:18:19", + "value": { + "name": "pos", + "nativeSrc": "13957:3:19", + "nodeType": "YulIdentifier", + "src": "13957:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "13942:11:19", + "nodeType": "YulIdentifier", + "src": "13942:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "13818:148:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13904:3:19", + "nodeType": "YulTypedName", + "src": "13904:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "13909:6:19", + "nodeType": "YulTypedName", + "src": "13909:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "13920:11:19", + "nodeType": "YulTypedName", + "src": "13920:11:19", + "type": "" + } + ], + "src": "13818:148:19" + }, + { + "body": { + "nativeSrc": "14082:280:19", + "nodeType": "YulBlock", + "src": "14082:280:19", + "statements": [ + { + "nativeSrc": "14092:53:19", + "nodeType": "YulVariableDeclaration", + "src": "14092:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14139:5:19", + "nodeType": "YulIdentifier", + "src": "14139:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "14106:32:19", + "nodeType": "YulIdentifier", + "src": "14106:32:19" + }, + "nativeSrc": "14106:39:19", + "nodeType": "YulFunctionCall", + "src": "14106:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "14096:6:19", + "nodeType": "YulTypedName", + "src": "14096:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "14154:96:19", + "nodeType": "YulAssignment", + "src": "14154:96:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14238:3:19", + "nodeType": "YulIdentifier", + "src": "14238:3:19" + }, + { + "name": "length", + "nativeSrc": "14243:6:19", + "nodeType": "YulIdentifier", + "src": "14243:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14161:76:19", + "nodeType": "YulIdentifier", + "src": "14161:76:19" + }, + "nativeSrc": "14161:89:19", + "nodeType": "YulFunctionCall", + "src": "14161:89:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14154:3:19", + "nodeType": "YulIdentifier", + "src": "14154:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14298:5:19", + "nodeType": "YulIdentifier", + "src": "14298:5:19" + }, + { + "kind": "number", + "nativeSrc": "14305:4:19", + "nodeType": "YulLiteral", + "src": "14305:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14294:3:19", + "nodeType": "YulIdentifier", + "src": "14294:3:19" + }, + "nativeSrc": "14294:16:19", + "nodeType": "YulFunctionCall", + "src": "14294:16:19" + }, + { + "name": "pos", + "nativeSrc": "14312:3:19", + "nodeType": "YulIdentifier", + "src": "14312:3:19" + }, + { + "name": "length", + "nativeSrc": "14317:6:19", + "nodeType": "YulIdentifier", + "src": "14317:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "14259:34:19", + "nodeType": "YulIdentifier", + "src": "14259:34:19" + }, + "nativeSrc": "14259:65:19", + "nodeType": "YulFunctionCall", + "src": "14259:65:19" + }, + "nativeSrc": "14259:65:19", + "nodeType": "YulExpressionStatement", + "src": "14259:65:19" + }, + { + "nativeSrc": "14333:23:19", + "nodeType": "YulAssignment", + "src": "14333:23:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14344:3:19", + "nodeType": "YulIdentifier", + "src": "14344:3:19" + }, + { + "name": "length", + "nativeSrc": "14349:6:19", + "nodeType": "YulIdentifier", + "src": "14349:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14340:3:19", + "nodeType": "YulIdentifier", + "src": "14340:3:19" + }, + "nativeSrc": "14340:16:19", + "nodeType": "YulFunctionCall", + "src": "14340:16:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14333:3:19", + "nodeType": "YulIdentifier", + "src": "14333:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "13972:390:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14063:5:19", + "nodeType": "YulTypedName", + "src": "14063:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14070:3:19", + "nodeType": "YulTypedName", + "src": "14070:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14078:3:19", + "nodeType": "YulTypedName", + "src": "14078:3:19", + "type": "" + } + ], + "src": "13972:390:19" + }, + { + "body": { + "nativeSrc": "14474:49:19", + "nodeType": "YulBlock", + "src": "14474:49:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14496:6:19", + "nodeType": "YulIdentifier", + "src": "14496:6:19" + }, + { + "kind": "number", + "nativeSrc": "14504:1:19", + "nodeType": "YulLiteral", + "src": "14504:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14492:3:19", + "nodeType": "YulIdentifier", + "src": "14492:3:19" + }, + "nativeSrc": "14492:14:19", + "nodeType": "YulFunctionCall", + "src": "14492:14:19" + }, + { + "hexValue": "2e6a736f6e", + "kind": "string", + "nativeSrc": "14508:7:19", + "nodeType": "YulLiteral", + "src": "14508:7:19", + "type": "", + "value": ".json" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14485:6:19", + "nodeType": "YulIdentifier", + "src": "14485:6:19" + }, + "nativeSrc": "14485:31:19", + "nodeType": "YulFunctionCall", + "src": "14485:31:19" + }, + "nativeSrc": "14485:31:19", + "nodeType": "YulExpressionStatement", + "src": "14485:31:19" + } + ] + }, + "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "nativeSrc": "14368:155:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "14466:6:19", + "nodeType": "YulTypedName", + "src": "14466:6:19", + "type": "" + } + ], + "src": "14368:155:19" + }, + { + "body": { + "nativeSrc": "14693:236:19", + "nodeType": "YulBlock", + "src": "14693:236:19", + "statements": [ + { + "nativeSrc": "14703:91:19", + "nodeType": "YulAssignment", + "src": "14703:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14787:3:19", + "nodeType": "YulIdentifier", + "src": "14787:3:19" + }, + { + "kind": "number", + "nativeSrc": "14792:1:19", + "nodeType": "YulLiteral", + "src": "14792:1:19", + "type": "", + "value": "5" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14710:76:19", + "nodeType": "YulIdentifier", + "src": "14710:76:19" + }, + "nativeSrc": "14710:84:19", + "nodeType": "YulFunctionCall", + "src": "14710:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14703:3:19", + "nodeType": "YulIdentifier", + "src": "14703:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14892:3:19", + "nodeType": "YulIdentifier", + "src": "14892:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "nativeSrc": "14803:88:19", + "nodeType": "YulIdentifier", + "src": "14803:88:19" + }, + "nativeSrc": "14803:93:19", + "nodeType": "YulFunctionCall", + "src": "14803:93:19" + }, + "nativeSrc": "14803:93:19", + "nodeType": "YulExpressionStatement", + "src": "14803:93:19" + }, + { + "nativeSrc": "14905:18:19", + "nodeType": "YulAssignment", + "src": "14905:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14916:3:19", + "nodeType": "YulIdentifier", + "src": "14916:3:19" + }, + { + "kind": "number", + "nativeSrc": "14921:1:19", + "nodeType": "YulLiteral", + "src": "14921:1:19", + "type": "", + "value": "5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14912:3:19", + "nodeType": "YulIdentifier", + "src": "14912:3:19" + }, + "nativeSrc": "14912:11:19", + "nodeType": "YulFunctionCall", + "src": "14912:11:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14905:3:19", + "nodeType": "YulIdentifier", + "src": "14905:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14529:400:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14681:3:19", + "nodeType": "YulTypedName", + "src": "14681:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14689:3:19", + "nodeType": "YulTypedName", + "src": "14689:3:19", + "type": "" + } + ], + "src": "14529:400:19" + }, + { + "body": { + "nativeSrc": "15172:304:19", + "nodeType": "YulBlock", + "src": "15172:304:19", + "statements": [ + { + "nativeSrc": "15183:102:19", + "nodeType": "YulAssignment", + "src": "15183:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15272:6:19", + "nodeType": "YulIdentifier", + "src": "15272:6:19" + }, + { + "name": "pos", + "nativeSrc": "15281:3:19", + "nodeType": "YulIdentifier", + "src": "15281:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15190:81:19", + "nodeType": "YulIdentifier", + "src": "15190:81:19" + }, + "nativeSrc": "15190:95:19", + "nodeType": "YulFunctionCall", + "src": "15190:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15183:3:19", + "nodeType": "YulIdentifier", + "src": "15183:3:19" + } + ] + }, + { + "nativeSrc": "15295:155:19", + "nodeType": "YulAssignment", + "src": "15295:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15446:3:19", + "nodeType": "YulIdentifier", + "src": "15446:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15302:142:19", + "nodeType": "YulIdentifier", + "src": "15302:142:19" + }, + "nativeSrc": "15302:148:19", + "nodeType": "YulFunctionCall", + "src": "15302:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15295:3:19", + "nodeType": "YulIdentifier", + "src": "15295:3:19" + } + ] + }, + { + "nativeSrc": "15460:10:19", + "nodeType": "YulAssignment", + "src": "15460:10:19", + "value": { + "name": "pos", + "nativeSrc": "15467:3:19", + "nodeType": "YulIdentifier", + "src": "15467:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15460:3:19", + "nodeType": "YulIdentifier", + "src": "15460:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "14935:541:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15151:3:19", + "nodeType": "YulTypedName", + "src": "15151:3:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15157:6:19", + "nodeType": "YulTypedName", + "src": "15157:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15168:3:19", + "nodeType": "YulTypedName", + "src": "15168:3:19", + "type": "" + } + ], + "src": "14935:541:19" + }, + { + "body": { + "nativeSrc": "15510:152:19", + "nodeType": "YulBlock", + "src": "15510:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15527:1:19", + "nodeType": "YulLiteral", + "src": "15527:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15530:77:19", + "nodeType": "YulLiteral", + "src": "15530:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15520:6:19", + "nodeType": "YulIdentifier", + "src": "15520:6:19" + }, + "nativeSrc": "15520:88:19", + "nodeType": "YulFunctionCall", + "src": "15520:88:19" + }, + "nativeSrc": "15520:88:19", + "nodeType": "YulExpressionStatement", + "src": "15520:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15624:1:19", + "nodeType": "YulLiteral", + "src": "15624:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "15627:4:19", + "nodeType": "YulLiteral", + "src": "15627:4:19", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15617:6:19", + "nodeType": "YulIdentifier", + "src": "15617:6:19" + }, + "nativeSrc": "15617:15:19", + "nodeType": "YulFunctionCall", + "src": "15617:15:19" + }, + "nativeSrc": "15617:15:19", + "nodeType": "YulExpressionStatement", + "src": "15617:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15648:1:19", + "nodeType": "YulLiteral", + "src": "15648:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15651:4:19", + "nodeType": "YulLiteral", + "src": "15651:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15641:6:19", + "nodeType": "YulIdentifier", + "src": "15641:6:19" + }, + "nativeSrc": "15641:15:19", + "nodeType": "YulFunctionCall", + "src": "15641:15:19" + }, + "nativeSrc": "15641:15:19", + "nodeType": "YulExpressionStatement", + "src": "15641:15:19" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "15482:180:19", + "nodeType": "YulFunctionDefinition", + "src": "15482:180:19" + }, + { + "body": { + "nativeSrc": "15722:87:19", + "nodeType": "YulBlock", + "src": "15722:87:19", + "statements": [ + { + "nativeSrc": "15732:11:19", + "nodeType": "YulAssignment", + "src": "15732:11:19", + "value": { + "name": "ptr", + "nativeSrc": "15740:3:19", + "nodeType": "YulIdentifier", + "src": "15740:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "15732:4:19", + "nodeType": "YulIdentifier", + "src": "15732:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15760:1:19", + "nodeType": "YulLiteral", + "src": "15760:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "15763:3:19", + "nodeType": "YulIdentifier", + "src": "15763:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15753:6:19", + "nodeType": "YulIdentifier", + "src": "15753:6:19" + }, + "nativeSrc": "15753:14:19", + "nodeType": "YulFunctionCall", + "src": "15753:14:19" + }, + "nativeSrc": "15753:14:19", + "nodeType": "YulExpressionStatement", + "src": "15753:14:19" + }, + { + "nativeSrc": "15776:26:19", + "nodeType": "YulAssignment", + "src": "15776:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15794:1:19", + "nodeType": "YulLiteral", + "src": "15794:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15797:4:19", + "nodeType": "YulLiteral", + "src": "15797:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "15784:9:19", + "nodeType": "YulIdentifier", + "src": "15784:9:19" + }, + "nativeSrc": "15784:18:19", + "nodeType": "YulFunctionCall", + "src": "15784:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "15776:4:19", + "nodeType": "YulIdentifier", + "src": "15776:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "15668:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "15709:3:19", + "nodeType": "YulTypedName", + "src": "15709:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "15717:4:19", + "nodeType": "YulTypedName", + "src": "15717:4:19", + "type": "" + } + ], + "src": "15668:141:19" + }, + { + "body": { + "nativeSrc": "15859:49:19", + "nodeType": "YulBlock", + "src": "15859:49:19", + "statements": [ + { + "nativeSrc": "15869:33:19", + "nodeType": "YulAssignment", + "src": "15869:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15887:5:19", + "nodeType": "YulIdentifier", + "src": "15887:5:19" + }, + { + "kind": "number", + "nativeSrc": "15894:2:19", + "nodeType": "YulLiteral", + "src": "15894:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15883:3:19", + "nodeType": "YulIdentifier", + "src": "15883:3:19" + }, + "nativeSrc": "15883:14:19", + "nodeType": "YulFunctionCall", + "src": "15883:14:19" + }, + { + "kind": "number", + "nativeSrc": "15899:2:19", + "nodeType": "YulLiteral", + "src": "15899:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "15879:3:19", + "nodeType": "YulIdentifier", + "src": "15879:3:19" + }, + "nativeSrc": "15879:23:19", + "nodeType": "YulFunctionCall", + "src": "15879:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "15869:6:19", + "nodeType": "YulIdentifier", + "src": "15869:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "15815:93:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "15842:5:19", + "nodeType": "YulTypedName", + "src": "15842:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "15852:6:19", + "nodeType": "YulTypedName", + "src": "15852:6:19", + "type": "" + } + ], + "src": "15815:93:19" + }, + { + "body": { + "nativeSrc": "15967:54:19", + "nodeType": "YulBlock", + "src": "15967:54:19", + "statements": [ + { + "nativeSrc": "15977:37:19", + "nodeType": "YulAssignment", + "src": "15977:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "16002:4:19", + "nodeType": "YulIdentifier", + "src": "16002:4:19" + }, + { + "name": "value", + "nativeSrc": "16008:5:19", + "nodeType": "YulIdentifier", + "src": "16008:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15998:3:19", + "nodeType": "YulIdentifier", + "src": "15998:3:19" + }, + "nativeSrc": "15998:16:19", + "nodeType": "YulFunctionCall", + "src": "15998:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "15977:8:19", + "nodeType": "YulIdentifier", + "src": "15977:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "15914:107:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "15942:4:19", + "nodeType": "YulTypedName", + "src": "15942:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "15948:5:19", + "nodeType": "YulTypedName", + "src": "15948:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "15958:8:19", + "nodeType": "YulTypedName", + "src": "15958:8:19", + "type": "" + } + ], + "src": "15914:107:19" + }, + { + "body": { + "nativeSrc": "16103:317:19", + "nodeType": "YulBlock", + "src": "16103:317:19", + "statements": [ + { + "nativeSrc": "16113:35:19", + "nodeType": "YulVariableDeclaration", + "src": "16113:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "16134:10:19", + "nodeType": "YulIdentifier", + "src": "16134:10:19" + }, + { + "kind": "number", + "nativeSrc": "16146:1:19", + "nodeType": "YulLiteral", + "src": "16146:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "16130:3:19", + "nodeType": "YulIdentifier", + "src": "16130:3:19" + }, + "nativeSrc": "16130:18:19", + "nodeType": "YulFunctionCall", + "src": "16130:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "16117:9:19", + "nodeType": "YulTypedName", + "src": "16117:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "16157:109:19", + "nodeType": "YulVariableDeclaration", + "src": "16157:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16188:9:19", + "nodeType": "YulIdentifier", + "src": "16188:9:19" + }, + { + "kind": "number", + "nativeSrc": "16199:66:19", + "nodeType": "YulLiteral", + "src": "16199:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16169:18:19", + "nodeType": "YulIdentifier", + "src": "16169:18:19" + }, + "nativeSrc": "16169:97:19", + "nodeType": "YulFunctionCall", + "src": "16169:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "16161:4:19", + "nodeType": "YulTypedName", + "src": "16161:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "16275:51:19", + "nodeType": "YulAssignment", + "src": "16275:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16306:9:19", + "nodeType": "YulIdentifier", + "src": "16306:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "16317:8:19", + "nodeType": "YulIdentifier", + "src": "16317:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16287:18:19", + "nodeType": "YulIdentifier", + "src": "16287:18:19" + }, + "nativeSrc": "16287:39:19", + "nodeType": "YulFunctionCall", + "src": "16287:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "16275:8:19", + "nodeType": "YulIdentifier", + "src": "16275:8:19" + } + ] + }, + { + "nativeSrc": "16335:30:19", + "nodeType": "YulAssignment", + "src": "16335:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16348:5:19", + "nodeType": "YulIdentifier", + "src": "16348:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "16359:4:19", + "nodeType": "YulIdentifier", + "src": "16359:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "16355:3:19", + "nodeType": "YulIdentifier", + "src": "16355:3:19" + }, + "nativeSrc": "16355:9:19", + "nodeType": "YulFunctionCall", + "src": "16355:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16344:3:19", + "nodeType": "YulIdentifier", + "src": "16344:3:19" + }, + "nativeSrc": "16344:21:19", + "nodeType": "YulFunctionCall", + "src": "16344:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "16335:5:19", + "nodeType": "YulIdentifier", + "src": "16335:5:19" + } + ] + }, + { + "nativeSrc": "16374:40:19", + "nodeType": "YulAssignment", + "src": "16374:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16387:5:19", + "nodeType": "YulIdentifier", + "src": "16387:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "16398:8:19", + "nodeType": "YulIdentifier", + "src": "16398:8:19" + }, + { + "name": "mask", + "nativeSrc": "16408:4:19", + "nodeType": "YulIdentifier", + "src": "16408:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16394:3:19", + "nodeType": "YulIdentifier", + "src": "16394:3:19" + }, + "nativeSrc": "16394:19:19", + "nodeType": "YulFunctionCall", + "src": "16394:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "16384:2:19", + "nodeType": "YulIdentifier", + "src": "16384:2:19" + }, + "nativeSrc": "16384:30:19", + "nodeType": "YulFunctionCall", + "src": "16384:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "16374:6:19", + "nodeType": "YulIdentifier", + "src": "16374:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "16027:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16064:5:19", + "nodeType": "YulTypedName", + "src": "16064:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "16071:10:19", + "nodeType": "YulTypedName", + "src": "16071:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "16083:8:19", + "nodeType": "YulTypedName", + "src": "16083:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "16096:6:19", + "nodeType": "YulTypedName", + "src": "16096:6:19", + "type": "" + } + ], + "src": "16027:393:19" + }, + { + "body": { + "nativeSrc": "16458:28:19", + "nodeType": "YulBlock", + "src": "16458:28:19", + "statements": [ + { + "nativeSrc": "16468:12:19", + "nodeType": "YulAssignment", + "src": "16468:12:19", + "value": { + "name": "value", + "nativeSrc": "16475:5:19", + "nodeType": "YulIdentifier", + "src": "16475:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "16468:3:19", + "nodeType": "YulIdentifier", + "src": "16468:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "16426:60:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16444:5:19", + "nodeType": "YulTypedName", + "src": "16444:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "16454:3:19", + "nodeType": "YulTypedName", + "src": "16454:3:19", + "type": "" + } + ], + "src": "16426:60:19" + }, + { + "body": { + "nativeSrc": "16552:82:19", + "nodeType": "YulBlock", + "src": "16552:82:19", + "statements": [ + { + "nativeSrc": "16562:66:19", + "nodeType": "YulAssignment", + "src": "16562:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "16620:5:19", + "nodeType": "YulIdentifier", + "src": "16620:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16602:17:19", + "nodeType": "YulIdentifier", + "src": "16602:17:19" + }, + "nativeSrc": "16602:24:19", + "nodeType": "YulFunctionCall", + "src": "16602:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "16593:8:19", + "nodeType": "YulIdentifier", + "src": "16593:8:19" + }, + "nativeSrc": "16593:34:19", + "nodeType": "YulFunctionCall", + "src": "16593:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16575:17:19", + "nodeType": "YulIdentifier", + "src": "16575:17:19" + }, + "nativeSrc": "16575:53:19", + "nodeType": "YulFunctionCall", + "src": "16575:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "16562:9:19", + "nodeType": "YulIdentifier", + "src": "16562:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "16492:142:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16532:5:19", + "nodeType": "YulTypedName", + "src": "16532:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "16542:9:19", + "nodeType": "YulTypedName", + "src": "16542:9:19", + "type": "" + } + ], + "src": "16492:142:19" + }, + { + "body": { + "nativeSrc": "16687:28:19", + "nodeType": "YulBlock", + "src": "16687:28:19", + "statements": [ + { + "nativeSrc": "16697:12:19", + "nodeType": "YulAssignment", + "src": "16697:12:19", + "value": { + "name": "value", + "nativeSrc": "16704:5:19", + "nodeType": "YulIdentifier", + "src": "16704:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "16697:3:19", + "nodeType": "YulIdentifier", + "src": "16697:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "16640:75:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16673:5:19", + "nodeType": "YulTypedName", + "src": "16673:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "16683:3:19", + "nodeType": "YulTypedName", + "src": "16683:3:19", + "type": "" + } + ], + "src": "16640:75:19" + }, + { + "body": { + "nativeSrc": "16797:193:19", + "nodeType": "YulBlock", + "src": "16797:193:19", + "statements": [ + { + "nativeSrc": "16807:63:19", + "nodeType": "YulVariableDeclaration", + "src": "16807:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "16862:7:19", + "nodeType": "YulIdentifier", + "src": "16862:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "16831:30:19", + "nodeType": "YulIdentifier", + "src": "16831:30:19" + }, + "nativeSrc": "16831:39:19", + "nodeType": "YulFunctionCall", + "src": "16831:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "16811:16:19", + "nodeType": "YulTypedName", + "src": "16811:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "16886:4:19", + "nodeType": "YulIdentifier", + "src": "16886:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "16926:4:19", + "nodeType": "YulIdentifier", + "src": "16926:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "16920:5:19", + "nodeType": "YulIdentifier", + "src": "16920:5:19" + }, + "nativeSrc": "16920:11:19", + "nodeType": "YulFunctionCall", + "src": "16920:11:19" + }, + { + "name": "offset", + "nativeSrc": "16933:6:19", + "nodeType": "YulIdentifier", + "src": "16933:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "16965:16:19", + "nodeType": "YulIdentifier", + "src": "16965:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "16941:23:19", + "nodeType": "YulIdentifier", + "src": "16941:23:19" + }, + "nativeSrc": "16941:41:19", + "nodeType": "YulFunctionCall", + "src": "16941:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "16892:27:19", + "nodeType": "YulIdentifier", + "src": "16892:27:19" + }, + "nativeSrc": "16892:91:19", + "nodeType": "YulFunctionCall", + "src": "16892:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "16879:6:19", + "nodeType": "YulIdentifier", + "src": "16879:6:19" + }, + "nativeSrc": "16879:105:19", + "nodeType": "YulFunctionCall", + "src": "16879:105:19" + }, + "nativeSrc": "16879:105:19", + "nodeType": "YulExpressionStatement", + "src": "16879:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "16721:269:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "16774:4:19", + "nodeType": "YulTypedName", + "src": "16774:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "16780:6:19", + "nodeType": "YulTypedName", + "src": "16780:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "16788:7:19", + "nodeType": "YulTypedName", + "src": "16788:7:19", + "type": "" + } + ], + "src": "16721:269:19" + }, + { + "body": { + "nativeSrc": "17045:24:19", + "nodeType": "YulBlock", + "src": "17045:24:19", + "statements": [ + { + "nativeSrc": "17055:8:19", + "nodeType": "YulAssignment", + "src": "17055:8:19", + "value": { + "kind": "number", + "nativeSrc": "17062:1:19", + "nodeType": "YulLiteral", + "src": "17062:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "17055:3:19", + "nodeType": "YulIdentifier", + "src": "17055:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "16996:73:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "17041:3:19", + "nodeType": "YulTypedName", + "src": "17041:3:19", + "type": "" + } + ], + "src": "16996:73:19" + }, + { + "body": { + "nativeSrc": "17128:136:19", + "nodeType": "YulBlock", + "src": "17128:136:19", + "statements": [ + { + "nativeSrc": "17138:46:19", + "nodeType": "YulVariableDeclaration", + "src": "17138:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "17152:30:19", + "nodeType": "YulIdentifier", + "src": "17152:30:19" + }, + "nativeSrc": "17152:32:19", + "nodeType": "YulFunctionCall", + "src": "17152:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "17142:6:19", + "nodeType": "YulTypedName", + "src": "17142:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17237:4:19", + "nodeType": "YulIdentifier", + "src": "17237:4:19" + }, + { + "name": "offset", + "nativeSrc": "17243:6:19", + "nodeType": "YulIdentifier", + "src": "17243:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "17251:6:19", + "nodeType": "YulIdentifier", + "src": "17251:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "17193:43:19", + "nodeType": "YulIdentifier", + "src": "17193:43:19" + }, + "nativeSrc": "17193:65:19", + "nodeType": "YulFunctionCall", + "src": "17193:65:19" + }, + "nativeSrc": "17193:65:19", + "nodeType": "YulExpressionStatement", + "src": "17193:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "17075:189:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "17114:4:19", + "nodeType": "YulTypedName", + "src": "17114:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "17120:6:19", + "nodeType": "YulTypedName", + "src": "17120:6:19", + "type": "" + } + ], + "src": "17075:189:19" + }, + { + "body": { + "nativeSrc": "17320:136:19", + "nodeType": "YulBlock", + "src": "17320:136:19", + "statements": [ + { + "body": { + "nativeSrc": "17387:63:19", + "nodeType": "YulBlock", + "src": "17387:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17431:5:19", + "nodeType": "YulIdentifier", + "src": "17431:5:19" + }, + { + "kind": "number", + "nativeSrc": "17438:1:19", + "nodeType": "YulLiteral", + "src": "17438:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "17401:29:19", + "nodeType": "YulIdentifier", + "src": "17401:29:19" + }, + "nativeSrc": "17401:39:19", + "nodeType": "YulFunctionCall", + "src": "17401:39:19" + }, + "nativeSrc": "17401:39:19", + "nodeType": "YulExpressionStatement", + "src": "17401:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17340:5:19", + "nodeType": "YulIdentifier", + "src": "17340:5:19" + }, + { + "name": "end", + "nativeSrc": "17347:3:19", + "nodeType": "YulIdentifier", + "src": "17347:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17337:2:19", + "nodeType": "YulIdentifier", + "src": "17337:2:19" + }, + "nativeSrc": "17337:14:19", + "nodeType": "YulFunctionCall", + "src": "17337:14:19" + }, + "nativeSrc": "17330:120:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "17352:26:19", + "nodeType": "YulBlock", + "src": "17352:26:19", + "statements": [ + { + "nativeSrc": "17354:22:19", + "nodeType": "YulAssignment", + "src": "17354:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17367:5:19", + "nodeType": "YulIdentifier", + "src": "17367:5:19" + }, + { + "kind": "number", + "nativeSrc": "17374:1:19", + "nodeType": "YulLiteral", + "src": "17374:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17363:3:19", + "nodeType": "YulIdentifier", + "src": "17363:3:19" + }, + "nativeSrc": "17363:13:19", + "nodeType": "YulFunctionCall", + "src": "17363:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "17354:5:19", + "nodeType": "YulIdentifier", + "src": "17354:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "17334:2:19", + "nodeType": "YulBlock", + "src": "17334:2:19", + "statements": [] + }, + "src": "17330:120:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "17270:186:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "17308:5:19", + "nodeType": "YulTypedName", + "src": "17308:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17315:3:19", + "nodeType": "YulTypedName", + "src": "17315:3:19", + "type": "" + } + ], + "src": "17270:186:19" + }, + { + "body": { + "nativeSrc": "17541:464:19", + "nodeType": "YulBlock", + "src": "17541:464:19", + "statements": [ + { + "body": { + "nativeSrc": "17567:431:19", + "nodeType": "YulBlock", + "src": "17567:431:19", + "statements": [ + { + "nativeSrc": "17581:54:19", + "nodeType": "YulVariableDeclaration", + "src": "17581:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "17629:5:19", + "nodeType": "YulIdentifier", + "src": "17629:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "17597:31:19", + "nodeType": "YulIdentifier", + "src": "17597:31:19" + }, + "nativeSrc": "17597:38:19", + "nodeType": "YulFunctionCall", + "src": "17597:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "17585:8:19", + "nodeType": "YulTypedName", + "src": "17585:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "17648:63:19", + "nodeType": "YulVariableDeclaration", + "src": "17648:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "17671:8:19", + "nodeType": "YulIdentifier", + "src": "17671:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17699:10:19", + "nodeType": "YulIdentifier", + "src": "17699:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "17681:17:19", + "nodeType": "YulIdentifier", + "src": "17681:17:19" + }, + "nativeSrc": "17681:29:19", + "nodeType": "YulFunctionCall", + "src": "17681:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17667:3:19", + "nodeType": "YulIdentifier", + "src": "17667:3:19" + }, + "nativeSrc": "17667:44:19", + "nodeType": "YulFunctionCall", + "src": "17667:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "17652:11:19", + "nodeType": "YulTypedName", + "src": "17652:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17868:27:19", + "nodeType": "YulBlock", + "src": "17868:27:19", + "statements": [ + { + "nativeSrc": "17870:23:19", + "nodeType": "YulAssignment", + "src": "17870:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "17885:8:19", + "nodeType": "YulIdentifier", + "src": "17885:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "17870:11:19", + "nodeType": "YulIdentifier", + "src": "17870:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17852:10:19", + "nodeType": "YulIdentifier", + "src": "17852:10:19" + }, + { + "kind": "number", + "nativeSrc": "17864:2:19", + "nodeType": "YulLiteral", + "src": "17864:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17849:2:19", + "nodeType": "YulIdentifier", + "src": "17849:2:19" + }, + "nativeSrc": "17849:18:19", + "nodeType": "YulFunctionCall", + "src": "17849:18:19" + }, + "nativeSrc": "17846:49:19", + "nodeType": "YulIf", + "src": "17846:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "17937:11:19", + "nodeType": "YulIdentifier", + "src": "17937:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "17954:8:19", + "nodeType": "YulIdentifier", + "src": "17954:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "17982:3:19", + "nodeType": "YulIdentifier", + "src": "17982:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "17964:17:19", + "nodeType": "YulIdentifier", + "src": "17964:17:19" + }, + "nativeSrc": "17964:22:19", + "nodeType": "YulFunctionCall", + "src": "17964:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17950:3:19", + "nodeType": "YulIdentifier", + "src": "17950:3:19" + }, + "nativeSrc": "17950:37:19", + "nodeType": "YulFunctionCall", + "src": "17950:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "17908:28:19", + "nodeType": "YulIdentifier", + "src": "17908:28:19" + }, + "nativeSrc": "17908:80:19", + "nodeType": "YulFunctionCall", + "src": "17908:80:19" + }, + "nativeSrc": "17908:80:19", + "nodeType": "YulExpressionStatement", + "src": "17908:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "17558:3:19", + "nodeType": "YulIdentifier", + "src": "17558:3:19" + }, + { + "kind": "number", + "nativeSrc": "17563:2:19", + "nodeType": "YulLiteral", + "src": "17563:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17555:2:19", + "nodeType": "YulIdentifier", + "src": "17555:2:19" + }, + "nativeSrc": "17555:11:19", + "nodeType": "YulFunctionCall", + "src": "17555:11:19" + }, + "nativeSrc": "17552:446:19", + "nodeType": "YulIf", + "src": "17552:446:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "17462:543:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "17517:5:19", + "nodeType": "YulTypedName", + "src": "17517:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "17524:3:19", + "nodeType": "YulTypedName", + "src": "17524:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "17529:10:19", + "nodeType": "YulTypedName", + "src": "17529:10:19", + "type": "" + } + ], + "src": "17462:543:19" + }, + { + "body": { + "nativeSrc": "18074:54:19", + "nodeType": "YulBlock", + "src": "18074:54:19", + "statements": [ + { + "nativeSrc": "18084:37:19", + "nodeType": "YulAssignment", + "src": "18084:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "18109:4:19", + "nodeType": "YulIdentifier", + "src": "18109:4:19" + }, + { + "name": "value", + "nativeSrc": "18115:5:19", + "nodeType": "YulIdentifier", + "src": "18115:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18105:3:19", + "nodeType": "YulIdentifier", + "src": "18105:3:19" + }, + "nativeSrc": "18105:16:19", + "nodeType": "YulFunctionCall", + "src": "18105:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "18084:8:19", + "nodeType": "YulIdentifier", + "src": "18084:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18011:117:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "18049:4:19", + "nodeType": "YulTypedName", + "src": "18049:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "18055:5:19", + "nodeType": "YulTypedName", + "src": "18055:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "18065:8:19", + "nodeType": "YulTypedName", + "src": "18065:8:19", + "type": "" + } + ], + "src": "18011:117:19" + }, + { + "body": { + "nativeSrc": "18185:118:19", + "nodeType": "YulBlock", + "src": "18185:118:19", + "statements": [ + { + "nativeSrc": "18195:68:19", + "nodeType": "YulVariableDeclaration", + "src": "18195:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18244:1:19", + "nodeType": "YulLiteral", + "src": "18244:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "18247:5:19", + "nodeType": "YulIdentifier", + "src": "18247:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "18240:3:19", + "nodeType": "YulIdentifier", + "src": "18240:3:19" + }, + "nativeSrc": "18240:13:19", + "nodeType": "YulFunctionCall", + "src": "18240:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18259:1:19", + "nodeType": "YulLiteral", + "src": "18259:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18255:3:19", + "nodeType": "YulIdentifier", + "src": "18255:3:19" + }, + "nativeSrc": "18255:6:19", + "nodeType": "YulFunctionCall", + "src": "18255:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18211:28:19", + "nodeType": "YulIdentifier", + "src": "18211:28:19" + }, + "nativeSrc": "18211:51:19", + "nodeType": "YulFunctionCall", + "src": "18211:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18207:3:19", + "nodeType": "YulIdentifier", + "src": "18207:3:19" + }, + "nativeSrc": "18207:56:19", + "nodeType": "YulFunctionCall", + "src": "18207:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "18199:4:19", + "nodeType": "YulTypedName", + "src": "18199:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "18272:25:19", + "nodeType": "YulAssignment", + "src": "18272:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18286:4:19", + "nodeType": "YulIdentifier", + "src": "18286:4:19" + }, + { + "name": "mask", + "nativeSrc": "18292:4:19", + "nodeType": "YulIdentifier", + "src": "18292:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18282:3:19", + "nodeType": "YulIdentifier", + "src": "18282:3:19" + }, + "nativeSrc": "18282:15:19", + "nodeType": "YulFunctionCall", + "src": "18282:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18272:6:19", + "nodeType": "YulIdentifier", + "src": "18272:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "18134:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18162:4:19", + "nodeType": "YulTypedName", + "src": "18162:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "18168:5:19", + "nodeType": "YulTypedName", + "src": "18168:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "18178:6:19", + "nodeType": "YulTypedName", + "src": "18178:6:19", + "type": "" + } + ], + "src": "18134:169:19" + }, + { + "body": { + "nativeSrc": "18389:214:19", + "nodeType": "YulBlock", + "src": "18389:214:19", + "statements": [ + { + "nativeSrc": "18522:37:19", + "nodeType": "YulAssignment", + "src": "18522:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18549:4:19", + "nodeType": "YulIdentifier", + "src": "18549:4:19" + }, + { + "name": "len", + "nativeSrc": "18555:3:19", + "nodeType": "YulIdentifier", + "src": "18555:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "18530:18:19", + "nodeType": "YulIdentifier", + "src": "18530:18:19" + }, + "nativeSrc": "18530:29:19", + "nodeType": "YulFunctionCall", + "src": "18530:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "18522:4:19", + "nodeType": "YulIdentifier", + "src": "18522:4:19" + } + ] + }, + { + "nativeSrc": "18568:29:19", + "nodeType": "YulAssignment", + "src": "18568:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18579:4:19", + "nodeType": "YulIdentifier", + "src": "18579:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18589:1:19", + "nodeType": "YulLiteral", + "src": "18589:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "18592:3:19", + "nodeType": "YulIdentifier", + "src": "18592:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "18585:3:19", + "nodeType": "YulIdentifier", + "src": "18585:3:19" + }, + "nativeSrc": "18585:11:19", + "nodeType": "YulFunctionCall", + "src": "18585:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "18576:2:19", + "nodeType": "YulIdentifier", + "src": "18576:2:19" + }, + "nativeSrc": "18576:21:19", + "nodeType": "YulFunctionCall", + "src": "18576:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "18568:4:19", + "nodeType": "YulIdentifier", + "src": "18568:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "18308:295:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18370:4:19", + "nodeType": "YulTypedName", + "src": "18370:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "18376:3:19", + "nodeType": "YulTypedName", + "src": "18376:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "18384:4:19", + "nodeType": "YulTypedName", + "src": "18384:4:19", + "type": "" + } + ], + "src": "18308:295:19" + }, + { + "body": { + "nativeSrc": "18700:1303:19", + "nodeType": "YulBlock", + "src": "18700:1303:19", + "statements": [ + { + "nativeSrc": "18711:51:19", + "nodeType": "YulVariableDeclaration", + "src": "18711:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "18758:3:19", + "nodeType": "YulIdentifier", + "src": "18758:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "18725:32:19", + "nodeType": "YulIdentifier", + "src": "18725:32:19" + }, + "nativeSrc": "18725:37:19", + "nodeType": "YulFunctionCall", + "src": "18725:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "18715:6:19", + "nodeType": "YulTypedName", + "src": "18715:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18847:22:19", + "nodeType": "YulBlock", + "src": "18847:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "18849:16:19", + "nodeType": "YulIdentifier", + "src": "18849:16:19" + }, + "nativeSrc": "18849:18:19", + "nodeType": "YulFunctionCall", + "src": "18849:18:19" + }, + "nativeSrc": "18849:18:19", + "nodeType": "YulExpressionStatement", + "src": "18849:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18819:6:19", + "nodeType": "YulIdentifier", + "src": "18819:6:19" + }, + { + "kind": "number", + "nativeSrc": "18827:18:19", + "nodeType": "YulLiteral", + "src": "18827:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18816:2:19", + "nodeType": "YulIdentifier", + "src": "18816:2:19" + }, + "nativeSrc": "18816:30:19", + "nodeType": "YulFunctionCall", + "src": "18816:30:19" + }, + "nativeSrc": "18813:56:19", + "nodeType": "YulIf", + "src": "18813:56:19" + }, + { + "nativeSrc": "18879:52:19", + "nodeType": "YulVariableDeclaration", + "src": "18879:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18925:4:19", + "nodeType": "YulIdentifier", + "src": "18925:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "18919:5:19", + "nodeType": "YulIdentifier", + "src": "18919:5:19" + }, + "nativeSrc": "18919:11:19", + "nodeType": "YulFunctionCall", + "src": "18919:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "18893:25:19", + "nodeType": "YulIdentifier", + "src": "18893:25:19" + }, + "nativeSrc": "18893:38:19", + "nodeType": "YulFunctionCall", + "src": "18893:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "18883:6:19", + "nodeType": "YulTypedName", + "src": "18883:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19024:4:19", + "nodeType": "YulIdentifier", + "src": "19024:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "19030:6:19", + "nodeType": "YulIdentifier", + "src": "19030:6:19" + }, + { + "name": "newLen", + "nativeSrc": "19038:6:19", + "nodeType": "YulIdentifier", + "src": "19038:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "18978:45:19", + "nodeType": "YulIdentifier", + "src": "18978:45:19" + }, + "nativeSrc": "18978:67:19", + "nodeType": "YulFunctionCall", + "src": "18978:67:19" + }, + "nativeSrc": "18978:67:19", + "nodeType": "YulExpressionStatement", + "src": "18978:67:19" + }, + { + "nativeSrc": "19055:18:19", + "nodeType": "YulVariableDeclaration", + "src": "19055:18:19", + "value": { + "kind": "number", + "nativeSrc": "19072:1:19", + "nodeType": "YulLiteral", + "src": "19072:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "19059:9:19", + "nodeType": "YulTypedName", + "src": "19059:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19083:17:19", + "nodeType": "YulAssignment", + "src": "19083:17:19", + "value": { + "kind": "number", + "nativeSrc": "19096:4:19", + "nodeType": "YulLiteral", + "src": "19096:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19083:9:19", + "nodeType": "YulIdentifier", + "src": "19083:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "19147:611:19", + "nodeType": "YulBlock", + "src": "19147:611:19", + "statements": [ + { + "nativeSrc": "19161:37:19", + "nodeType": "YulVariableDeclaration", + "src": "19161:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19180:6:19", + "nodeType": "YulIdentifier", + "src": "19180:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19192:4:19", + "nodeType": "YulLiteral", + "src": "19192:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19188:3:19", + "nodeType": "YulIdentifier", + "src": "19188:3:19" + }, + "nativeSrc": "19188:9:19", + "nodeType": "YulFunctionCall", + "src": "19188:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19176:3:19", + "nodeType": "YulIdentifier", + "src": "19176:3:19" + }, + "nativeSrc": "19176:22:19", + "nodeType": "YulFunctionCall", + "src": "19176:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "19165:7:19", + "nodeType": "YulTypedName", + "src": "19165:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19212:51:19", + "nodeType": "YulVariableDeclaration", + "src": "19212:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19258:4:19", + "nodeType": "YulIdentifier", + "src": "19258:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "19226:31:19", + "nodeType": "YulIdentifier", + "src": "19226:31:19" + }, + "nativeSrc": "19226:37:19", + "nodeType": "YulFunctionCall", + "src": "19226:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "19216:6:19", + "nodeType": "YulTypedName", + "src": "19216:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19276:10:19", + "nodeType": "YulVariableDeclaration", + "src": "19276:10:19", + "value": { + "kind": "number", + "nativeSrc": "19285:1:19", + "nodeType": "YulLiteral", + "src": "19285:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "19280:1:19", + "nodeType": "YulTypedName", + "src": "19280:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19344:163:19", + "nodeType": "YulBlock", + "src": "19344:163:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19369:6:19", + "nodeType": "YulIdentifier", + "src": "19369:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19387:3:19", + "nodeType": "YulIdentifier", + "src": "19387:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "19392:9:19", + "nodeType": "YulIdentifier", + "src": "19392:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19383:3:19", + "nodeType": "YulIdentifier", + "src": "19383:3:19" + }, + "nativeSrc": "19383:19:19", + "nodeType": "YulFunctionCall", + "src": "19383:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19377:5:19", + "nodeType": "YulIdentifier", + "src": "19377:5:19" + }, + "nativeSrc": "19377:26:19", + "nodeType": "YulFunctionCall", + "src": "19377:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19362:6:19", + "nodeType": "YulIdentifier", + "src": "19362:6:19" + }, + "nativeSrc": "19362:42:19", + "nodeType": "YulFunctionCall", + "src": "19362:42:19" + }, + "nativeSrc": "19362:42:19", + "nodeType": "YulExpressionStatement", + "src": "19362:42:19" + }, + { + "nativeSrc": "19421:24:19", + "nodeType": "YulAssignment", + "src": "19421:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19435:6:19", + "nodeType": "YulIdentifier", + "src": "19435:6:19" + }, + { + "kind": "number", + "nativeSrc": "19443:1:19", + "nodeType": "YulLiteral", + "src": "19443:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19431:3:19", + "nodeType": "YulIdentifier", + "src": "19431:3:19" + }, + "nativeSrc": "19431:14:19", + "nodeType": "YulFunctionCall", + "src": "19431:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "19421:6:19", + "nodeType": "YulIdentifier", + "src": "19421:6:19" + } + ] + }, + { + "nativeSrc": "19462:31:19", + "nodeType": "YulAssignment", + "src": "19462:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "19479:9:19", + "nodeType": "YulIdentifier", + "src": "19479:9:19" + }, + { + "kind": "number", + "nativeSrc": "19490:2:19", + "nodeType": "YulLiteral", + "src": "19490:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19475:3:19", + "nodeType": "YulIdentifier", + "src": "19475:3:19" + }, + "nativeSrc": "19475:18:19", + "nodeType": "YulFunctionCall", + "src": "19475:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19462:9:19", + "nodeType": "YulIdentifier", + "src": "19462:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "19310:1:19", + "nodeType": "YulIdentifier", + "src": "19310:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "19313:7:19", + "nodeType": "YulIdentifier", + "src": "19313:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19307:2:19", + "nodeType": "YulIdentifier", + "src": "19307:2:19" + }, + "nativeSrc": "19307:14:19", + "nodeType": "YulFunctionCall", + "src": "19307:14:19" + }, + "nativeSrc": "19299:208:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "19322:21:19", + "nodeType": "YulBlock", + "src": "19322:21:19", + "statements": [ + { + "nativeSrc": "19324:17:19", + "nodeType": "YulAssignment", + "src": "19324:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "19333:1:19", + "nodeType": "YulIdentifier", + "src": "19333:1:19" + }, + { + "kind": "number", + "nativeSrc": "19336:4:19", + "nodeType": "YulLiteral", + "src": "19336:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19329:3:19", + "nodeType": "YulIdentifier", + "src": "19329:3:19" + }, + "nativeSrc": "19329:12:19", + "nodeType": "YulFunctionCall", + "src": "19329:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "19324:1:19", + "nodeType": "YulIdentifier", + "src": "19324:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "19303:3:19", + "nodeType": "YulBlock", + "src": "19303:3:19", + "statements": [] + }, + "src": "19299:208:19" + }, + { + "body": { + "nativeSrc": "19543:156:19", + "nodeType": "YulBlock", + "src": "19543:156:19", + "statements": [ + { + "nativeSrc": "19561:43:19", + "nodeType": "YulVariableDeclaration", + "src": "19561:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19588:3:19", + "nodeType": "YulIdentifier", + "src": "19588:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "19593:9:19", + "nodeType": "YulIdentifier", + "src": "19593:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19584:3:19", + "nodeType": "YulIdentifier", + "src": "19584:3:19" + }, + "nativeSrc": "19584:19:19", + "nodeType": "YulFunctionCall", + "src": "19584:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19578:5:19", + "nodeType": "YulIdentifier", + "src": "19578:5:19" + }, + "nativeSrc": "19578:26:19", + "nodeType": "YulFunctionCall", + "src": "19578:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "19565:9:19", + "nodeType": "YulTypedName", + "src": "19565:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19628:6:19", + "nodeType": "YulIdentifier", + "src": "19628:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "19655:9:19", + "nodeType": "YulIdentifier", + "src": "19655:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19670:6:19", + "nodeType": "YulIdentifier", + "src": "19670:6:19" + }, + { + "kind": "number", + "nativeSrc": "19678:4:19", + "nodeType": "YulLiteral", + "src": "19678:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19666:3:19", + "nodeType": "YulIdentifier", + "src": "19666:3:19" + }, + "nativeSrc": "19666:17:19", + "nodeType": "YulFunctionCall", + "src": "19666:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "19636:18:19", + "nodeType": "YulIdentifier", + "src": "19636:18:19" + }, + "nativeSrc": "19636:48:19", + "nodeType": "YulFunctionCall", + "src": "19636:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19621:6:19", + "nodeType": "YulIdentifier", + "src": "19621:6:19" + }, + "nativeSrc": "19621:64:19", + "nodeType": "YulFunctionCall", + "src": "19621:64:19" + }, + "nativeSrc": "19621:64:19", + "nodeType": "YulExpressionStatement", + "src": "19621:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "19526:7:19", + "nodeType": "YulIdentifier", + "src": "19526:7:19" + }, + { + "name": "newLen", + "nativeSrc": "19535:6:19", + "nodeType": "YulIdentifier", + "src": "19535:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19523:2:19", + "nodeType": "YulIdentifier", + "src": "19523:2:19" + }, + "nativeSrc": "19523:19:19", + "nodeType": "YulFunctionCall", + "src": "19523:19:19" + }, + "nativeSrc": "19520:179:19", + "nodeType": "YulIf", + "src": "19520:179:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19719:4:19", + "nodeType": "YulIdentifier", + "src": "19719:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19733:6:19", + "nodeType": "YulIdentifier", + "src": "19733:6:19" + }, + { + "kind": "number", + "nativeSrc": "19741:1:19", + "nodeType": "YulLiteral", + "src": "19741:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19729:3:19", + "nodeType": "YulIdentifier", + "src": "19729:3:19" + }, + "nativeSrc": "19729:14:19", + "nodeType": "YulFunctionCall", + "src": "19729:14:19" + }, + { + "kind": "number", + "nativeSrc": "19745:1:19", + "nodeType": "YulLiteral", + "src": "19745:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19725:3:19", + "nodeType": "YulIdentifier", + "src": "19725:3:19" + }, + "nativeSrc": "19725:22:19", + "nodeType": "YulFunctionCall", + "src": "19725:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19712:6:19", + "nodeType": "YulIdentifier", + "src": "19712:6:19" + }, + "nativeSrc": "19712:36:19", + "nodeType": "YulFunctionCall", + "src": "19712:36:19" + }, + "nativeSrc": "19712:36:19", + "nodeType": "YulExpressionStatement", + "src": "19712:36:19" + } + ] + }, + "nativeSrc": "19140:618:19", + "nodeType": "YulCase", + "src": "19140:618:19", + "value": { + "kind": "number", + "nativeSrc": "19145:1:19", + "nodeType": "YulLiteral", + "src": "19145:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "19775:222:19", + "nodeType": "YulBlock", + "src": "19775:222:19", + "statements": [ + { + "nativeSrc": "19789:14:19", + "nodeType": "YulVariableDeclaration", + "src": "19789:14:19", + "value": { + "kind": "number", + "nativeSrc": "19802:1:19", + "nodeType": "YulLiteral", + "src": "19802:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19793:5:19", + "nodeType": "YulTypedName", + "src": "19793:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19826:67:19", + "nodeType": "YulBlock", + "src": "19826:67:19", + "statements": [ + { + "nativeSrc": "19844:35:19", + "nodeType": "YulAssignment", + "src": "19844:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19863:3:19", + "nodeType": "YulIdentifier", + "src": "19863:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "19868:9:19", + "nodeType": "YulIdentifier", + "src": "19868:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19859:3:19", + "nodeType": "YulIdentifier", + "src": "19859:3:19" + }, + "nativeSrc": "19859:19:19", + "nodeType": "YulFunctionCall", + "src": "19859:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19853:5:19", + "nodeType": "YulIdentifier", + "src": "19853:5:19" + }, + "nativeSrc": "19853:26:19", + "nodeType": "YulFunctionCall", + "src": "19853:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19844:5:19", + "nodeType": "YulIdentifier", + "src": "19844:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "19819:6:19", + "nodeType": "YulIdentifier", + "src": "19819:6:19" + }, + "nativeSrc": "19816:77:19", + "nodeType": "YulIf", + "src": "19816:77:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19913:4:19", + "nodeType": "YulIdentifier", + "src": "19913:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19972:5:19", + "nodeType": "YulIdentifier", + "src": "19972:5:19" + }, + { + "name": "newLen", + "nativeSrc": "19979:6:19", + "nodeType": "YulIdentifier", + "src": "19979:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "19919:52:19", + "nodeType": "YulIdentifier", + "src": "19919:52:19" + }, + "nativeSrc": "19919:67:19", + "nodeType": "YulFunctionCall", + "src": "19919:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19906:6:19", + "nodeType": "YulIdentifier", + "src": "19906:6:19" + }, + "nativeSrc": "19906:81:19", + "nodeType": "YulFunctionCall", + "src": "19906:81:19" + }, + "nativeSrc": "19906:81:19", + "nodeType": "YulExpressionStatement", + "src": "19906:81:19" + } + ] + }, + "nativeSrc": "19767:230:19", + "nodeType": "YulCase", + "src": "19767:230:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19120:6:19", + "nodeType": "YulIdentifier", + "src": "19120:6:19" + }, + { + "kind": "number", + "nativeSrc": "19128:2:19", + "nodeType": "YulLiteral", + "src": "19128:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19117:2:19", + "nodeType": "YulIdentifier", + "src": "19117:2:19" + }, + "nativeSrc": "19117:14:19", + "nodeType": "YulFunctionCall", + "src": "19117:14:19" + }, + "nativeSrc": "19110:887:19", + "nodeType": "YulSwitch", + "src": "19110:887:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "18608:1395:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18689:4:19", + "nodeType": "YulTypedName", + "src": "18689:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "18695:3:19", + "nodeType": "YulTypedName", + "src": "18695:3:19", + "type": "" + } + ], + "src": "18608:1395:19" + }, + { + "body": { + "nativeSrc": "20294:416:19", + "nodeType": "YulBlock", + "src": "20294:416:19", + "statements": [ + { + "nativeSrc": "20305:102:19", + "nodeType": "YulAssignment", + "src": "20305:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "20394:6:19", + "nodeType": "YulIdentifier", + "src": "20394:6:19" + }, + { + "name": "pos", + "nativeSrc": "20403:3:19", + "nodeType": "YulIdentifier", + "src": "20403:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20312:81:19", + "nodeType": "YulIdentifier", + "src": "20312:81:19" + }, + "nativeSrc": "20312:95:19", + "nodeType": "YulFunctionCall", + "src": "20312:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20305:3:19", + "nodeType": "YulIdentifier", + "src": "20305:3:19" + } + ] + }, + { + "nativeSrc": "20417:102:19", + "nodeType": "YulAssignment", + "src": "20417:102:19", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "20506:6:19", + "nodeType": "YulIdentifier", + "src": "20506:6:19" + }, + { + "name": "pos", + "nativeSrc": "20515:3:19", + "nodeType": "YulIdentifier", + "src": "20515:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20424:81:19", + "nodeType": "YulIdentifier", + "src": "20424:81:19" + }, + "nativeSrc": "20424:95:19", + "nodeType": "YulFunctionCall", + "src": "20424:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20417:3:19", + "nodeType": "YulIdentifier", + "src": "20417:3:19" + } + ] + }, + { + "nativeSrc": "20529:155:19", + "nodeType": "YulAssignment", + "src": "20529:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20680:3:19", + "nodeType": "YulIdentifier", + "src": "20680:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20536:142:19", + "nodeType": "YulIdentifier", + "src": "20536:142:19" + }, + "nativeSrc": "20536:148:19", + "nodeType": "YulFunctionCall", + "src": "20536:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20529:3:19", + "nodeType": "YulIdentifier", + "src": "20529:3:19" + } + ] + }, + { + "nativeSrc": "20694:10:19", + "nodeType": "YulAssignment", + "src": "20694:10:19", + "value": { + "name": "pos", + "nativeSrc": "20701:3:19", + "nodeType": "YulIdentifier", + "src": "20701:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "20694:3:19", + "nodeType": "YulIdentifier", + "src": "20694:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "20009:701:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "20265:3:19", + "nodeType": "YulTypedName", + "src": "20265:3:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20271:6:19", + "nodeType": "YulTypedName", + "src": "20271:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20279:6:19", + "nodeType": "YulTypedName", + "src": "20279:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "20290:3:19", + "nodeType": "YulTypedName", + "src": "20290:3:19", + "type": "" + } + ], + "src": "20009:701:19" + }, + { + "body": { + "nativeSrc": "20744:152:19", + "nodeType": "YulBlock", + "src": "20744:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20761:1:19", + "nodeType": "YulLiteral", + "src": "20761:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20764:77:19", + "nodeType": "YulLiteral", + "src": "20764:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20754:6:19", + "nodeType": "YulIdentifier", + "src": "20754:6:19" + }, + "nativeSrc": "20754:88:19", + "nodeType": "YulFunctionCall", + "src": "20754:88:19" + }, + "nativeSrc": "20754:88:19", + "nodeType": "YulExpressionStatement", + "src": "20754:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20858:1:19", + "nodeType": "YulLiteral", + "src": "20858:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "20861:4:19", + "nodeType": "YulLiteral", + "src": "20861:4:19", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20851:6:19", + "nodeType": "YulIdentifier", + "src": "20851:6:19" + }, + "nativeSrc": "20851:15:19", + "nodeType": "YulFunctionCall", + "src": "20851:15:19" + }, + "nativeSrc": "20851:15:19", + "nodeType": "YulExpressionStatement", + "src": "20851:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20882:1:19", + "nodeType": "YulLiteral", + "src": "20882:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20885:4:19", + "nodeType": "YulLiteral", + "src": "20885:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20875:6:19", + "nodeType": "YulIdentifier", + "src": "20875:6:19" + }, + "nativeSrc": "20875:15:19", + "nodeType": "YulFunctionCall", + "src": "20875:15:19" + }, + "nativeSrc": "20875:15:19", + "nodeType": "YulExpressionStatement", + "src": "20875:15:19" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "20716:180:19", + "nodeType": "YulFunctionDefinition", + "src": "20716:180:19" + }, + { + "body": { + "nativeSrc": "20960:40:19", + "nodeType": "YulBlock", + "src": "20960:40:19", + "statements": [ + { + "nativeSrc": "20971:22:19", + "nodeType": "YulAssignment", + "src": "20971:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "20987:5:19", + "nodeType": "YulIdentifier", + "src": "20987:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20981:5:19", + "nodeType": "YulIdentifier", + "src": "20981:5:19" + }, + "nativeSrc": "20981:12:19", + "nodeType": "YulFunctionCall", + "src": "20981:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "20971:6:19", + "nodeType": "YulIdentifier", + "src": "20971:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "20902:98:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "20943:5:19", + "nodeType": "YulTypedName", + "src": "20943:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "20953:6:19", + "nodeType": "YulTypedName", + "src": "20953:6:19", + "type": "" + } + ], + "src": "20902:98:19" + }, + { + "body": { + "nativeSrc": "21101:73:19", + "nodeType": "YulBlock", + "src": "21101:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21118:3:19", + "nodeType": "YulIdentifier", + "src": "21118:3:19" + }, + { + "name": "length", + "nativeSrc": "21123:6:19", + "nodeType": "YulIdentifier", + "src": "21123:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21111:6:19", + "nodeType": "YulIdentifier", + "src": "21111:6:19" + }, + "nativeSrc": "21111:19:19", + "nodeType": "YulFunctionCall", + "src": "21111:19:19" + }, + "nativeSrc": "21111:19:19", + "nodeType": "YulExpressionStatement", + "src": "21111:19:19" + }, + { + "nativeSrc": "21139:29:19", + "nodeType": "YulAssignment", + "src": "21139:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21158:3:19", + "nodeType": "YulIdentifier", + "src": "21158:3:19" + }, + { + "kind": "number", + "nativeSrc": "21163:4:19", + "nodeType": "YulLiteral", + "src": "21163:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21154:3:19", + "nodeType": "YulIdentifier", + "src": "21154:3:19" + }, + "nativeSrc": "21154:14:19", + "nodeType": "YulFunctionCall", + "src": "21154:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "21139:11:19", + "nodeType": "YulIdentifier", + "src": "21139:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21006:168:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "21073:3:19", + "nodeType": "YulTypedName", + "src": "21073:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "21078:6:19", + "nodeType": "YulTypedName", + "src": "21078:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "21089:11:19", + "nodeType": "YulTypedName", + "src": "21089:11:19", + "type": "" + } + ], + "src": "21006:168:19" + }, + { + "body": { + "nativeSrc": "21270:283:19", + "nodeType": "YulBlock", + "src": "21270:283:19", + "statements": [ + { + "nativeSrc": "21280:52:19", + "nodeType": "YulVariableDeclaration", + "src": "21280:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21326:5:19", + "nodeType": "YulIdentifier", + "src": "21326:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "21294:31:19", + "nodeType": "YulIdentifier", + "src": "21294:31:19" + }, + "nativeSrc": "21294:38:19", + "nodeType": "YulFunctionCall", + "src": "21294:38:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "21284:6:19", + "nodeType": "YulTypedName", + "src": "21284:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "21341:77:19", + "nodeType": "YulAssignment", + "src": "21341:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21406:3:19", + "nodeType": "YulIdentifier", + "src": "21406:3:19" + }, + { + "name": "length", + "nativeSrc": "21411:6:19", + "nodeType": "YulIdentifier", + "src": "21411:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21348:57:19", + "nodeType": "YulIdentifier", + "src": "21348:57:19" + }, + "nativeSrc": "21348:70:19", + "nodeType": "YulFunctionCall", + "src": "21348:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21341:3:19", + "nodeType": "YulIdentifier", + "src": "21341:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "21466:5:19", + "nodeType": "YulIdentifier", + "src": "21466:5:19" + }, + { + "kind": "number", + "nativeSrc": "21473:4:19", + "nodeType": "YulLiteral", + "src": "21473:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21462:3:19", + "nodeType": "YulIdentifier", + "src": "21462:3:19" + }, + "nativeSrc": "21462:16:19", + "nodeType": "YulFunctionCall", + "src": "21462:16:19" + }, + { + "name": "pos", + "nativeSrc": "21480:3:19", + "nodeType": "YulIdentifier", + "src": "21480:3:19" + }, + { + "name": "length", + "nativeSrc": "21485:6:19", + "nodeType": "YulIdentifier", + "src": "21485:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "21427:34:19", + "nodeType": "YulIdentifier", + "src": "21427:34:19" + }, + "nativeSrc": "21427:65:19", + "nodeType": "YulFunctionCall", + "src": "21427:65:19" + }, + "nativeSrc": "21427:65:19", + "nodeType": "YulExpressionStatement", + "src": "21427:65:19" + }, + { + "nativeSrc": "21501:46:19", + "nodeType": "YulAssignment", + "src": "21501:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21512:3:19", + "nodeType": "YulIdentifier", + "src": "21512:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "21539:6:19", + "nodeType": "YulIdentifier", + "src": "21539:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "21517:21:19", + "nodeType": "YulIdentifier", + "src": "21517:21:19" + }, + "nativeSrc": "21517:29:19", + "nodeType": "YulFunctionCall", + "src": "21517:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21508:3:19", + "nodeType": "YulIdentifier", + "src": "21508:3:19" + }, + "nativeSrc": "21508:39:19", + "nodeType": "YulFunctionCall", + "src": "21508:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21501:3:19", + "nodeType": "YulIdentifier", + "src": "21501:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21180:373:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21251:5:19", + "nodeType": "YulTypedName", + "src": "21251:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "21258:3:19", + "nodeType": "YulTypedName", + "src": "21258:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "21266:3:19", + "nodeType": "YulTypedName", + "src": "21266:3:19", + "type": "" + } + ], + "src": "21180:373:19" + }, + { + "body": { + "nativeSrc": "21759:440:19", + "nodeType": "YulBlock", + "src": "21759:440:19", + "statements": [ + { + "nativeSrc": "21769:27:19", + "nodeType": "YulAssignment", + "src": "21769:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21781:9:19", + "nodeType": "YulIdentifier", + "src": "21781:9:19" + }, + { + "kind": "number", + "nativeSrc": "21792:3:19", + "nodeType": "YulLiteral", + "src": "21792:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21777:3:19", + "nodeType": "YulIdentifier", + "src": "21777:3:19" + }, + "nativeSrc": "21777:19:19", + "nodeType": "YulFunctionCall", + "src": "21777:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21769:4:19", + "nodeType": "YulIdentifier", + "src": "21769:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "21850:6:19", + "nodeType": "YulIdentifier", + "src": "21850:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21863:9:19", + "nodeType": "YulIdentifier", + "src": "21863:9:19" + }, + { + "kind": "number", + "nativeSrc": "21874:1:19", + "nodeType": "YulLiteral", + "src": "21874:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21859:3:19", + "nodeType": "YulIdentifier", + "src": "21859:3:19" + }, + "nativeSrc": "21859:17:19", + "nodeType": "YulFunctionCall", + "src": "21859:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "21806:43:19", + "nodeType": "YulIdentifier", + "src": "21806:43:19" + }, + "nativeSrc": "21806:71:19", + "nodeType": "YulFunctionCall", + "src": "21806:71:19" + }, + "nativeSrc": "21806:71:19", + "nodeType": "YulExpressionStatement", + "src": "21806:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "21931:6:19", + "nodeType": "YulIdentifier", + "src": "21931:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21944:9:19", + "nodeType": "YulIdentifier", + "src": "21944:9:19" + }, + { + "kind": "number", + "nativeSrc": "21955:2:19", + "nodeType": "YulLiteral", + "src": "21955:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21940:3:19", + "nodeType": "YulIdentifier", + "src": "21940:3:19" + }, + "nativeSrc": "21940:18:19", + "nodeType": "YulFunctionCall", + "src": "21940:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "21887:43:19", + "nodeType": "YulIdentifier", + "src": "21887:43:19" + }, + "nativeSrc": "21887:72:19", + "nodeType": "YulFunctionCall", + "src": "21887:72:19" + }, + "nativeSrc": "21887:72:19", + "nodeType": "YulExpressionStatement", + "src": "21887:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "22013:6:19", + "nodeType": "YulIdentifier", + "src": "22013:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22026:9:19", + "nodeType": "YulIdentifier", + "src": "22026:9:19" + }, + { + "kind": "number", + "nativeSrc": "22037:2:19", + "nodeType": "YulLiteral", + "src": "22037:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22022:3:19", + "nodeType": "YulIdentifier", + "src": "22022:3:19" + }, + "nativeSrc": "22022:18:19", + "nodeType": "YulFunctionCall", + "src": "22022:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "21969:43:19", + "nodeType": "YulIdentifier", + "src": "21969:43:19" + }, + "nativeSrc": "21969:72:19", + "nodeType": "YulFunctionCall", + "src": "21969:72:19" + }, + "nativeSrc": "21969:72:19", + "nodeType": "YulExpressionStatement", + "src": "21969:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22062:9:19", + "nodeType": "YulIdentifier", + "src": "22062:9:19" + }, + { + "kind": "number", + "nativeSrc": "22073:2:19", + "nodeType": "YulLiteral", + "src": "22073:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22058:3:19", + "nodeType": "YulIdentifier", + "src": "22058:3:19" + }, + "nativeSrc": "22058:18:19", + "nodeType": "YulFunctionCall", + "src": "22058:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22082:4:19", + "nodeType": "YulIdentifier", + "src": "22082:4:19" + }, + { + "name": "headStart", + "nativeSrc": "22088:9:19", + "nodeType": "YulIdentifier", + "src": "22088:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22078:3:19", + "nodeType": "YulIdentifier", + "src": "22078:3:19" + }, + "nativeSrc": "22078:20:19", + "nodeType": "YulFunctionCall", + "src": "22078:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22051:6:19", + "nodeType": "YulIdentifier", + "src": "22051:6:19" + }, + "nativeSrc": "22051:48:19", + "nodeType": "YulFunctionCall", + "src": "22051:48:19" + }, + "nativeSrc": "22051:48:19", + "nodeType": "YulExpressionStatement", + "src": "22051:48:19" + }, + { + "nativeSrc": "22108:84:19", + "nodeType": "YulAssignment", + "src": "22108:84:19", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "22178:6:19", + "nodeType": "YulIdentifier", + "src": "22178:6:19" + }, + { + "name": "tail", + "nativeSrc": "22187:4:19", + "nodeType": "YulIdentifier", + "src": "22187:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "22116:61:19", + "nodeType": "YulIdentifier", + "src": "22116:61:19" + }, + "nativeSrc": "22116:76:19", + "nodeType": "YulFunctionCall", + "src": "22116:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22108:4:19", + "nodeType": "YulIdentifier", + "src": "22108:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "21559:640:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21707:9:19", + "nodeType": "YulTypedName", + "src": "21707:9:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "21719:6:19", + "nodeType": "YulTypedName", + "src": "21719:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21727:6:19", + "nodeType": "YulTypedName", + "src": "21727:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21735:6:19", + "nodeType": "YulTypedName", + "src": "21735:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21743:6:19", + "nodeType": "YulTypedName", + "src": "21743:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21754:4:19", + "nodeType": "YulTypedName", + "src": "21754:4:19", + "type": "" + } + ], + "src": "21559:640:19" + }, + { + "body": { + "nativeSrc": "22267:79:19", + "nodeType": "YulBlock", + "src": "22267:79:19", + "statements": [ + { + "nativeSrc": "22277:22:19", + "nodeType": "YulAssignment", + "src": "22277:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "22292:6:19", + "nodeType": "YulIdentifier", + "src": "22292:6:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22286:5:19", + "nodeType": "YulIdentifier", + "src": "22286:5:19" + }, + "nativeSrc": "22286:13:19", + "nodeType": "YulFunctionCall", + "src": "22286:13:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "22277:5:19", + "nodeType": "YulIdentifier", + "src": "22277:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "22334:5:19", + "nodeType": "YulIdentifier", + "src": "22334:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "22308:25:19", + "nodeType": "YulIdentifier", + "src": "22308:25:19" + }, + "nativeSrc": "22308:32:19", + "nodeType": "YulFunctionCall", + "src": "22308:32:19" + }, + "nativeSrc": "22308:32:19", + "nodeType": "YulExpressionStatement", + "src": "22308:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "22205:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "22245:6:19", + "nodeType": "YulTypedName", + "src": "22245:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "22253:3:19", + "nodeType": "YulTypedName", + "src": "22253:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "22261:5:19", + "nodeType": "YulTypedName", + "src": "22261:5:19", + "type": "" + } + ], + "src": "22205:141:19" + }, + { + "body": { + "nativeSrc": "22428:273:19", + "nodeType": "YulBlock", + "src": "22428:273:19", + "statements": [ + { + "body": { + "nativeSrc": "22474:83:19", + "nodeType": "YulBlock", + "src": "22474:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "22476:77:19", + "nodeType": "YulIdentifier", + "src": "22476:77:19" + }, + "nativeSrc": "22476:79:19", + "nodeType": "YulFunctionCall", + "src": "22476:79:19" + }, + "nativeSrc": "22476:79:19", + "nodeType": "YulExpressionStatement", + "src": "22476:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "22449:7:19", + "nodeType": "YulIdentifier", + "src": "22449:7:19" + }, + { + "name": "headStart", + "nativeSrc": "22458:9:19", + "nodeType": "YulIdentifier", + "src": "22458:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22445:3:19", + "nodeType": "YulIdentifier", + "src": "22445:3:19" + }, + "nativeSrc": "22445:23:19", + "nodeType": "YulFunctionCall", + "src": "22445:23:19" + }, + { + "kind": "number", + "nativeSrc": "22470:2:19", + "nodeType": "YulLiteral", + "src": "22470:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22441:3:19", + "nodeType": "YulIdentifier", + "src": "22441:3:19" + }, + "nativeSrc": "22441:32:19", + "nodeType": "YulFunctionCall", + "src": "22441:32:19" + }, + "nativeSrc": "22438:119:19", + "nodeType": "YulIf", + "src": "22438:119:19" + }, + { + "nativeSrc": "22567:127:19", + "nodeType": "YulBlock", + "src": "22567:127:19", + "statements": [ + { + "nativeSrc": "22582:15:19", + "nodeType": "YulVariableDeclaration", + "src": "22582:15:19", + "value": { + "kind": "number", + "nativeSrc": "22596:1:19", + "nodeType": "YulLiteral", + "src": "22596:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "22586:6:19", + "nodeType": "YulTypedName", + "src": "22586:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "22611:73:19", + "nodeType": "YulAssignment", + "src": "22611:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22656:9:19", + "nodeType": "YulIdentifier", + "src": "22656:9:19" + }, + { + "name": "offset", + "nativeSrc": "22667:6:19", + "nodeType": "YulIdentifier", + "src": "22667:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22652:3:19", + "nodeType": "YulIdentifier", + "src": "22652:3:19" + }, + "nativeSrc": "22652:22:19", + "nodeType": "YulFunctionCall", + "src": "22652:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "22676:7:19", + "nodeType": "YulIdentifier", + "src": "22676:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "22621:30:19", + "nodeType": "YulIdentifier", + "src": "22621:30:19" + }, + "nativeSrc": "22621:63:19", + "nodeType": "YulFunctionCall", + "src": "22621:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "22611:6:19", + "nodeType": "YulIdentifier", + "src": "22611:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "22352:349:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22398:9:19", + "nodeType": "YulTypedName", + "src": "22398:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "22409:7:19", + "nodeType": "YulTypedName", + "src": "22409:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "22421:6:19", + "nodeType": "YulTypedName", + "src": "22421:6:19", + "type": "" + } + ], + "src": "22352:349:19" + }, + { + "body": { + "nativeSrc": "22752:149:19", + "nodeType": "YulBlock", + "src": "22752:149:19", + "statements": [ + { + "nativeSrc": "22762:25:19", + "nodeType": "YulAssignment", + "src": "22762:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "22785:1:19", + "nodeType": "YulIdentifier", + "src": "22785:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "22767:17:19", + "nodeType": "YulIdentifier", + "src": "22767:17:19" + }, + "nativeSrc": "22767:20:19", + "nodeType": "YulFunctionCall", + "src": "22767:20:19" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "22762:1:19", + "nodeType": "YulIdentifier", + "src": "22762:1:19" + } + ] + }, + { + "nativeSrc": "22796:25:19", + "nodeType": "YulAssignment", + "src": "22796:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "22819:1:19", + "nodeType": "YulIdentifier", + "src": "22819:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "22801:17:19", + "nodeType": "YulIdentifier", + "src": "22801:17:19" + }, + "nativeSrc": "22801:20:19", + "nodeType": "YulFunctionCall", + "src": "22801:20:19" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "22796:1:19", + "nodeType": "YulIdentifier", + "src": "22796:1:19" + } + ] + }, + { + "nativeSrc": "22830:17:19", + "nodeType": "YulAssignment", + "src": "22830:17:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "22842:1:19", + "nodeType": "YulIdentifier", + "src": "22842:1:19" + }, + { + "name": "y", + "nativeSrc": "22845:1:19", + "nodeType": "YulIdentifier", + "src": "22845:1:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22838:3:19", + "nodeType": "YulIdentifier", + "src": "22838:3:19" + }, + "nativeSrc": "22838:9:19", + "nodeType": "YulFunctionCall", + "src": "22838:9:19" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "22830:4:19", + "nodeType": "YulIdentifier", + "src": "22830:4:19" + } + ] + }, + { + "body": { + "nativeSrc": "22872:22:19", + "nodeType": "YulBlock", + "src": "22872:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "22874:16:19", + "nodeType": "YulIdentifier", + "src": "22874:16:19" + }, + "nativeSrc": "22874:18:19", + "nodeType": "YulFunctionCall", + "src": "22874:18:19" + }, + "nativeSrc": "22874:18:19", + "nodeType": "YulExpressionStatement", + "src": "22874:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "22863:4:19", + "nodeType": "YulIdentifier", + "src": "22863:4:19" + }, + { + "name": "x", + "nativeSrc": "22869:1:19", + "nodeType": "YulIdentifier", + "src": "22869:1:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22860:2:19", + "nodeType": "YulIdentifier", + "src": "22860:2:19" + }, + "nativeSrc": "22860:11:19", + "nodeType": "YulFunctionCall", + "src": "22860:11:19" + }, + "nativeSrc": "22857:37:19", + "nodeType": "YulIf", + "src": "22857:37:19" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "22707:194:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "22738:1:19", + "nodeType": "YulTypedName", + "src": "22738:1:19", + "type": "" + }, + { + "name": "y", + "nativeSrc": "22741:1:19", + "nodeType": "YulTypedName", + "src": "22741:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "22747:4:19", + "nodeType": "YulTypedName", + "src": "22747:4:19", + "type": "" + } + ], + "src": "22707:194:19" + }, + { + "body": { + "nativeSrc": "22935:152:19", + "nodeType": "YulBlock", + "src": "22935:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22952:1:19", + "nodeType": "YulLiteral", + "src": "22952:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22955:77:19", + "nodeType": "YulLiteral", + "src": "22955:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22945:6:19", + "nodeType": "YulIdentifier", + "src": "22945:6:19" + }, + "nativeSrc": "22945:88:19", + "nodeType": "YulFunctionCall", + "src": "22945:88:19" + }, + "nativeSrc": "22945:88:19", + "nodeType": "YulExpressionStatement", + "src": "22945:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23049:1:19", + "nodeType": "YulLiteral", + "src": "23049:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "23052:4:19", + "nodeType": "YulLiteral", + "src": "23052:4:19", + "type": "", + "value": "0x31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23042:6:19", + "nodeType": "YulIdentifier", + "src": "23042:6:19" + }, + "nativeSrc": "23042:15:19", + "nodeType": "YulFunctionCall", + "src": "23042:15:19" + }, + "nativeSrc": "23042:15:19", + "nodeType": "YulExpressionStatement", + "src": "23042:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23073:1:19", + "nodeType": "YulLiteral", + "src": "23073:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23076:4:19", + "nodeType": "YulLiteral", + "src": "23076:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23066:6:19", + "nodeType": "YulIdentifier", + "src": "23066:6:19" + }, + "nativeSrc": "23066:15:19", + "nodeType": "YulFunctionCall", + "src": "23066:15:19" + }, + "nativeSrc": "23066:15:19", + "nodeType": "YulExpressionStatement", + "src": "23066:15:19" + } + ] + }, + "name": "panic_error_0x31", + "nativeSrc": "22907:180:19", + "nodeType": "YulFunctionDefinition", + "src": "22907:180:19" + } + ] + }, + "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 cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\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 mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\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_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(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_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_bytes_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 abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_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_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\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 function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__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_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(memPtr) {\n\n mstore(add(memPtr, 0), \".json\")\n\n }\n\n function abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 5)\n store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(pos)\n end := add(pos, 5)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\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 abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101425760003560e01c806356189236116100b857806395d89b411161007c57806395d89b4114610375578063a22cb46514610393578063b88d4fde146103af578063c87b56dd146103cb578063e985e9c5146103fb578063f2fde38b1461042b57610142565b806356189236146102cf5780636352211e146102ed57806370a082311461031d578063715018a61461034d5780638da5cb5b1461035757610142565b806323b872dd1161010a57806323b872dd146101ff5780632f745c591461021b57806340d097c31461024b57806342842e0e146102675780634f6ccce71461028357806355f804b3146102b357610142565b806301ffc9a71461014757806306fdde0314610177578063081812fc14610195578063095ea7b3146101c557806318160ddd146101e1575b600080fd5b610161600480360381019061015c919061213b565b610447565b60405161016e9190612183565b60405180910390f35b61017f610459565b60405161018c919061222e565b60405180910390f35b6101af60048036038101906101aa9190612286565b6104eb565b6040516101bc91906122f4565b60405180910390f35b6101df60048036038101906101da919061233b565b610507565b005b6101e961051d565b6040516101f6919061238a565b60405180910390f35b610219600480360381019061021491906123a5565b61052a565b005b6102356004803603810190610230919061233b565b61062c565b604051610242919061238a565b60405180910390f35b610265600480360381019061026091906123f8565b6106d5565b005b610281600480360381019061027c91906123a5565b610737565b005b61029d60048036038101906102989190612286565b610757565b6040516102aa919061238a565b60405180910390f35b6102cd60048036038101906102c8919061255a565b6107cd565b005b6102d76107e8565b6040516102e4919061238a565b60405180910390f35b61030760048036038101906103029190612286565b6107f2565b60405161031491906122f4565b60405180910390f35b610337600480360381019061033291906123f8565b610804565b604051610344919061238a565b60405180910390f35b6103556108be565b005b61035f6108d2565b60405161036c91906122f4565b60405180910390f35b61037d6108fc565b60405161038a919061222e565b60405180910390f35b6103ad60048036038101906103a891906125cf565b61098e565b005b6103c960048036038101906103c491906126b0565b6109a4565b005b6103e560048036038101906103e09190612286565b6109c1565b6040516103f2919061222e565b60405180910390f35b61041560048036038101906104109190612733565b610a20565b6040516104229190612183565b60405180910390f35b610445600480360381019061044091906123f8565b610ab4565b005b600061045282610b3a565b9050919050565b606060008054610468906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610494906127a2565b80156104e15780601f106104b6576101008083540402835291602001916104e1565b820191906000526020600020905b8154815290600101906020018083116104c457829003601f168201915b5050505050905090565b60006104f682610b9b565b5061050082610c23565b9050919050565b6105198282610514610c60565b610c68565b5050565b6000600880549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361059c5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161059391906122f4565b60405180910390fd5b60006105b083836105ab610c60565b610c7a565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610626578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161061d939291906127d3565b60405180910390fd5b50505050565b600061063783610804565b821061067c5782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161067392919061280a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6106dd610c90565b6000600c60008154809291906106f290612862565b9190505590506107028282610d17565b6107338161070f83610d35565b60405160200161071f9190612932565b604051602081830303815290604052610e03565b5050565b610752838383604051806020016040528060008152506109a4565b505050565b600061076161051d565b82106107a7576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161079e92919061280a565b60405180910390fd5b600882815481106107bb576107ba612954565b5b90600052602060002001549050919050565b6107d5610c90565b80600d90816107e49190612b2f565b5050565b6000600c54905090565b60006107fd82610b9b565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108775760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161086e91906122f4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108c6610c90565b6108d06000610e5f565b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461090b906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610937906127a2565b80156109845780601f1061095957610100808354040283529160200191610984565b820191906000526020600020905b81548152906001019060200180831161096757829003601f168201915b5050505050905090565b6109a0610999610c60565b8383610f25565b5050565b6109af84848461052a565b6109bb84848484611094565b50505050565b606060006109cd61124b565b905060008151116109ed5760405180602001604052806000815250610a18565b806109f784610d35565b604051602001610a08929190612c01565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610abc610c90565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2e5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b2591906122f4565b60405180910390fd5b610b3781610e5f565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b945750610b93826112dd565b5b9050919050565b600080610ba783611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c1a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610c11919061238a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b610c758383836001611394565b505050565b6000610c87848484611559565b90509392505050565b610c98610c60565b73ffffffffffffffffffffffffffffffffffffffff16610cb66108d2565b73ffffffffffffffffffffffffffffffffffffffff1614610d1557610cd9610c60565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d0c91906122f4565b60405180910390fd5b565b610d31828260405180602001604052806000815250611676565b5050565b606060006001610d4484611692565b01905060008167ffffffffffffffff811115610d6357610d6261242f565b5b6040519080825280601f01601f191660200182016040528015610d955781602001600182028036833780820191505090505b509050600082602001820190505b600115610df8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610dec57610deb612c30565b5b04945060008503610da3575b819350505050919050565b80600a60008481526020019081526020016000209081610e239190612b2f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051610e53919061238a565b60405180910390a15050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9657816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610f8d91906122f4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110879190612183565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611245578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026110d8610c60565b8685856040518563ffffffff1660e01b81526004016110fa9493929190612cb4565b6020604051808303816000875af192505050801561113657506040513d601f19601f820116820180604052508101906111339190612d15565b60015b6111ba573d8060008114611166576040519150601f19603f3d011682016040523d82523d6000602084013e61116b565b606091505b5060008151036111b257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016111a991906122f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161123a91906122f4565b60405180910390fd5b505b50505050565b6060600d805461125a906127a2565b80601f0160208091040260200160405190810160405280929190818152602001828054611286906127a2565b80156112d35780601f106112a8576101008083540402835291602001916112d3565b820191906000526020600020905b8154815290600101906020018083116112b657829003601f168201915b5050505050905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611350575061134f826117e5565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806113cd5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115015760006113dd84610b9b565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561144857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561145b57506114598184610a20565b155b1561149d57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161149491906122f4565b60405180910390fd5b81156114ff57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806115678585856118c7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ab576115a684611ae1565b6115ea565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115e9576115e88185611b2a565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361162c5761162784611c8b565b61166b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461166a576116698585611d5c565b5b5b809150509392505050565b6116808383611de7565b61168d6000848484611094565b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106116f0577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116e6576116e5612c30565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061172d576d04ee2d6d415b85acef8100000000838161172357611722612c30565b5b0492506020810190505b662386f26fc10000831061175c57662386f26fc10000838161175257611751612c30565b5b0492506010810190505b6305f5e1008310611785576305f5e100838161177b5761177a612c30565b5b0492506008810190505b61271083106117aa5761271083816117a05761179f612c30565b5b0492506004810190505b606483106117cd57606483816117c3576117c2612c30565b5b0492506002810190505b600a83106117dc576001810190505b80915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118b057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118c057506118bf82611ee0565b5b9050919050565b6000806118d384611357565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461191557611914818486611f4a565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119a657611957600085600080611394565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611a29576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000611b3583610804565b9050600060076000848152602001908152602001600020549050818114611c1a576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050611c9f9190612d42565b9050600060096000848152602001908152602001600020549050600060088381548110611ccf57611cce612954565b5b906000526020600020015490508060088381548110611cf157611cf0612954565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480611d4057611d3f612d76565b5b6001900381819060005260206000200160009055905550505050565b60006001611d6984610804565b611d739190612d42565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e595760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e5091906122f4565b60405180910390fd5b6000611e6783836000610c7a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611edb5760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611ed291906122f4565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611f5583838361200e565b61200957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fca57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611fc1919061238a565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161200092919061280a565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208757506120868484610a20565b5b806120c557508273ffffffffffffffffffffffffffffffffffffffff166120ad83610c23565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612118816120e3565b811461212357600080fd5b50565b6000813590506121358161210f565b92915050565b600060208284031215612151576121506120d9565b5b600061215f84828501612126565b91505092915050565b60008115159050919050565b61217d81612168565b82525050565b60006020820190506121986000830184612174565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121d85780820151818401526020810190506121bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006122008261219e565b61220a81856121a9565b935061221a8185602086016121ba565b612223816121e4565b840191505092915050565b6000602082019050818103600083015261224881846121f5565b905092915050565b6000819050919050565b61226381612250565b811461226e57600080fd5b50565b6000813590506122808161225a565b92915050565b60006020828403121561229c5761229b6120d9565b5b60006122aa84828501612271565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122de826122b3565b9050919050565b6122ee816122d3565b82525050565b600060208201905061230960008301846122e5565b92915050565b612318816122d3565b811461232357600080fd5b50565b6000813590506123358161230f565b92915050565b60008060408385031215612352576123516120d9565b5b600061236085828601612326565b925050602061237185828601612271565b9150509250929050565b61238481612250565b82525050565b600060208201905061239f600083018461237b565b92915050565b6000806000606084860312156123be576123bd6120d9565b5b60006123cc86828701612326565b93505060206123dd86828701612326565b92505060406123ee86828701612271565b9150509250925092565b60006020828403121561240e5761240d6120d9565b5b600061241c84828501612326565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612467826121e4565b810181811067ffffffffffffffff821117156124865761248561242f565b5b80604052505050565b60006124996120cf565b90506124a5828261245e565b919050565b600067ffffffffffffffff8211156124c5576124c461242f565b5b6124ce826121e4565b9050602081019050919050565b82818337600083830152505050565b60006124fd6124f8846124aa565b61248f565b9050828152602081018484840111156125195761251861242a565b5b6125248482856124db565b509392505050565b600082601f83011261254157612540612425565b5b81356125518482602086016124ea565b91505092915050565b6000602082840312156125705761256f6120d9565b5b600082013567ffffffffffffffff81111561258e5761258d6120de565b5b61259a8482850161252c565b91505092915050565b6125ac81612168565b81146125b757600080fd5b50565b6000813590506125c9816125a3565b92915050565b600080604083850312156125e6576125e56120d9565b5b60006125f485828601612326565b9250506020612605858286016125ba565b9150509250929050565b600067ffffffffffffffff82111561262a5761262961242f565b5b612633826121e4565b9050602081019050919050565b600061265361264e8461260f565b61248f565b90508281526020810184848401111561266f5761266e61242a565b5b61267a8482856124db565b509392505050565b600082601f83011261269757612696612425565b5b81356126a7848260208601612640565b91505092915050565b600080600080608085870312156126ca576126c96120d9565b5b60006126d887828801612326565b94505060206126e987828801612326565b93505060406126fa87828801612271565b925050606085013567ffffffffffffffff81111561271b5761271a6120de565b5b61272787828801612682565b91505092959194509250565b6000806040838503121561274a576127496120d9565b5b600061275885828601612326565b925050602061276985828601612326565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127ba57607f821691505b6020821081036127cd576127cc612773565b5b50919050565b60006060820190506127e860008301866122e5565b6127f5602083018561237b565b61280260408301846122e5565b949350505050565b600060408201905061281f60008301856122e5565b61282c602083018461237b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061286d82612250565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289f5761289e612833565b5b600182019050919050565b600081905092915050565b60006128c08261219e565b6128ca81856128aa565b93506128da8185602086016121ba565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061291c6005836128aa565b9150612927826128e6565b600582019050919050565b600061293e82846128b5565b91506129498261290f565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026129e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826129a8565b6129ef86836129a8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612a2c612a27612a2284612250565b612a07565b612250565b9050919050565b6000819050919050565b612a4683612a11565b612a5a612a5282612a33565b8484546129b5565b825550505050565b600090565b612a6f612a62565b612a7a818484612a3d565b505050565b5b81811015612a9e57612a93600082612a67565b600181019050612a80565b5050565b601f821115612ae357612ab481612983565b612abd84612998565b81016020851015612acc578190505b612ae0612ad885612998565b830182612a7f565b50505b505050565b600082821c905092915050565b6000612b0660001984600802612ae8565b1980831691505092915050565b6000612b1f8383612af5565b9150826002028217905092915050565b612b388261219e565b67ffffffffffffffff811115612b5157612b5061242f565b5b612b5b82546127a2565b612b66828285612aa2565b600060209050601f831160018114612b995760008415612b87578287015190505b612b918582612b13565b865550612bf9565b601f198416612ba786612983565b60005b82811015612bcf57848901518255600182019150602085019450602081019050612baa565b86831015612bec5784890151612be8601f891682612af5565b8355505b6001600288020188555050505b505050505050565b6000612c0d82856128b5565b9150612c1982846128b5565b9150612c248261290f565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612c8682612c5f565b612c908185612c6a565b9350612ca08185602086016121ba565b612ca9816121e4565b840191505092915050565b6000608082019050612cc960008301876122e5565b612cd660208301866122e5565b612ce3604083018561237b565b8181036060830152612cf58184612c7b565b905095945050505050565b600081519050612d0f8161210f565b92915050565b600060208284031215612d2b57612d2a6120d9565b5b6000612d3984828501612d00565b91505092915050565b6000612d4d82612250565b9150612d5883612250565b9250828203905081811115612d7057612d6f612833565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220e742470774f454e660aa990254ed1f1d8f5271ffa5f567e4e79c7881bf12ea2064736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x56189236 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x42B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x56189236 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x357 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x40D097C3 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x2B3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x213B JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x459 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E9 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x235 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x230 SWAP2 SWAP1 PUSH2 0x233B JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x242 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0x6D5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x281 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27C SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AA SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x255A JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2D7 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x238A 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 0x2286 JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x22F4 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 0x23F8 JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x355 PUSH2 0x8BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x35F PUSH2 0x8D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37D PUSH2 0x8FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38A SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x25CF JUMP JUMPDEST PUSH2 0x98E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x26B0 JUMP JUMPDEST PUSH2 0x9A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x2286 JUMP JUMPDEST PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x415 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x2733 JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x445 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x440 SWAP2 SWAP1 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0xAB4 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH2 0x452 DUP3 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x468 SWAP1 PUSH2 0x27A2 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 0x494 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4E1 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 0x4C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F6 DUP3 PUSH2 0xB9B JUMP JUMPDEST POP PUSH2 0x500 DUP3 PUSH2 0xC23 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x519 DUP3 DUP3 PUSH2 0x514 PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC68 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x59C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5B0 DUP4 DUP4 PUSH2 0x5AB PUSH2 0xC60 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x626 JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x637 DUP4 PUSH2 0x804 JUMP JUMPDEST DUP3 LT PUSH2 0x67C JUMPI DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x673 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 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 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6DD PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x6F2 SWAP1 PUSH2 0x2862 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE SWAP1 POP PUSH2 0x702 DUP3 DUP3 PUSH2 0xD17 JUMP JUMPDEST PUSH2 0x733 DUP2 PUSH2 0x70F DUP4 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x2932 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xE03 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x752 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x9A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x761 PUSH2 0x51D JUMP JUMPDEST DUP3 LT PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP3 PUSH1 0x40 MLOAD PUSH32 0xA57D13DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x79E SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7D5 PUSH2 0xC90 JUMP JUMPDEST DUP1 PUSH1 0xD SWAP1 DUP2 PUSH2 0x7E4 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FD DUP3 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x877 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x86E SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0x8D0 PUSH1 0x0 PUSH2 0xE5F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x90B SWAP1 PUSH2 0x27A2 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 0x937 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x984 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x959 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x984 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 0x967 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9A0 PUSH2 0x999 PUSH2 0xC60 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xF25 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x9AF DUP5 DUP5 DUP5 PUSH2 0x52A JUMP JUMPDEST PUSH2 0x9BB DUP5 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9CD PUSH2 0x124B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x9ED JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xA18 JUMP JUMPDEST DUP1 PUSH2 0x9F7 DUP5 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA08 SWAP3 SWAP2 SWAP1 PUSH2 0x2C01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xABC PUSH2 0xC90 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB25 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB37 DUP2 PUSH2 0xE5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB94 JUMPI POP PUSH2 0xB93 DUP3 PUSH2 0x12DD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBA7 DUP4 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC1A JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC11 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC75 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1394 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC87 DUP5 DUP5 DUP5 PUSH2 0x1559 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC98 PUSH2 0xC60 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCB6 PUSH2 0x8D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD15 JUMPI PUSH2 0xCD9 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0C SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xD31 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1676 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0xD44 DUP5 PUSH2 0x1692 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD95 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xDF8 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0xDEC JUMPI PUSH2 0xDEB PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0xDA3 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0xE23 SWAP2 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE53 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0xB 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF96 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF8D SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1087 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1245 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x10D8 PUSH2 0xC60 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10FA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1136 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 0x1133 SWAP2 SWAP1 PUSH2 0x2D15 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11BA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1166 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x116B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x11B2 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A9 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1243 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123A SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xD DUP1 SLOAD PUSH2 0x125A SWAP1 PUSH2 0x27A2 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 0x1286 SWAP1 PUSH2 0x27A2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12D3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12A8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12D3 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 0x12B6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x780E9D6300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1350 JUMPI POP PUSH2 0x134F DUP3 PUSH2 0x17E5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x13CD JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1501 JUMPI PUSH1 0x0 PUSH2 0x13DD DUP5 PUSH2 0xB9B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1448 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x145B JUMPI POP PUSH2 0x1459 DUP2 DUP5 PUSH2 0xA20 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x149D JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1494 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x14FF JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1567 DUP6 DUP6 DUP6 PUSH2 0x18C7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AB JUMPI PUSH2 0x15A6 DUP5 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x15EA JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15E9 JUMPI PUSH2 0x15E8 DUP2 DUP6 PUSH2 0x1B2A JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x162C JUMPI PUSH2 0x1627 DUP5 PUSH2 0x1C8B JUMP JUMPDEST PUSH2 0x166B JUMP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x166A JUMPI PUSH2 0x1669 DUP6 DUP6 PUSH2 0x1D5C JUMP JUMPDEST JUMPDEST JUMPDEST DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1680 DUP4 DUP4 PUSH2 0x1DE7 JUMP JUMPDEST PUSH2 0x168D PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1094 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x16F0 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x16E6 JUMPI PUSH2 0x16E5 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x172D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1723 JUMPI PUSH2 0x1722 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x175C JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x1752 JUMPI PUSH2 0x1751 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1785 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x177B JUMPI PUSH2 0x177A PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x17AA JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x17A0 JUMPI PUSH2 0x179F PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x17CD JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x2C30 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x17DC JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x18B0 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x18C0 JUMPI POP PUSH2 0x18BF DUP3 PUSH2 0x1EE0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x18D3 DUP5 PUSH2 0x1357 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1915 JUMPI PUSH2 0x1914 DUP2 DUP5 DUP7 PUSH2 0x1F4A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19A6 JUMPI PUSH2 0x1957 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1394 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A29 JUMPI PUSH1 0x1 PUSH1 0x3 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x8 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B35 DUP4 PUSH2 0x804 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1C1A JUMPI PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH1 0x6 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 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x1C9F SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CCF JUMPI PUSH2 0x1CCE PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1CF1 JUMPI PUSH2 0x1CF0 PUSH2 0x2954 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x9 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x9 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x2D76 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1D69 DUP5 PUSH2 0x804 JUMP JUMPDEST PUSH2 0x1D73 SWAP2 SWAP1 PUSH2 0x2D42 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x6 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 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x7 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1E59 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E50 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E67 DUP4 DUP4 PUSH1 0x0 PUSH2 0xC7A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1EDB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ED2 SWAP2 SWAP1 PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST 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 PUSH2 0x1F55 DUP4 DUP4 DUP4 PUSH2 0x200E JUMP JUMPDEST PUSH2 0x2009 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1FCA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FC1 SWAP2 SWAP1 PUSH2 0x238A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2000 SWAP3 SWAP2 SWAP1 PUSH2 0x280A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2087 JUMPI POP PUSH2 0x2086 DUP5 DUP5 PUSH2 0xA20 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x20C5 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x20AD DUP4 PUSH2 0xC23 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2118 DUP2 PUSH2 0x20E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2135 DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2150 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x215F DUP5 DUP3 DUP6 ADD PUSH2 0x2126 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x217D DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2198 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2174 JUMP JUMPDEST 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 0x21D8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x21BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2200 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x220A DUP2 DUP6 PUSH2 0x21A9 JUMP JUMPDEST SWAP4 POP PUSH2 0x221A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2223 DUP2 PUSH2 0x21E4 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 0x2248 DUP2 DUP5 PUSH2 0x21F5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2263 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP2 EQ PUSH2 0x226E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2280 DUP2 PUSH2 0x225A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH2 0x229B PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22AA DUP5 DUP3 DUP6 ADD PUSH2 0x2271 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 PUSH2 0x22DE DUP3 PUSH2 0x22B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EE DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2309 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2318 DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2335 DUP2 PUSH2 0x230F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2352 JUMPI PUSH2 0x2351 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2360 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2371 DUP6 DUP3 DUP7 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2384 DUP2 PUSH2 0x2250 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x239F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23CC DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x23DD DUP7 DUP3 DUP8 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x23EE DUP7 DUP3 DUP8 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240E JUMPI PUSH2 0x240D PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x241C DUP5 DUP3 DUP6 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2467 DUP3 PUSH2 0x21E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2486 JUMPI PUSH2 0x2485 PUSH2 0x242F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2499 PUSH2 0x20CF JUMP JUMPDEST SWAP1 POP PUSH2 0x24A5 DUP3 DUP3 PUSH2 0x245E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24C5 JUMPI PUSH2 0x24C4 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x24CE DUP3 PUSH2 0x21E4 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 0x24FD PUSH2 0x24F8 DUP5 PUSH2 0x24AA JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x2524 DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2541 JUMPI PUSH2 0x2540 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2551 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2570 JUMPI PUSH2 0x256F PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x258E JUMPI PUSH2 0x258D PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x259A DUP5 DUP3 DUP6 ADD PUSH2 0x252C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25AC DUP2 PUSH2 0x2168 JUMP JUMPDEST DUP2 EQ PUSH2 0x25B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25C9 DUP2 PUSH2 0x25A3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E6 JUMPI PUSH2 0x25E5 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25F4 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2605 DUP6 DUP3 DUP7 ADD PUSH2 0x25BA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x262A JUMPI PUSH2 0x2629 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2633 DUP3 PUSH2 0x21E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2653 PUSH2 0x264E DUP5 PUSH2 0x260F JUMP JUMPDEST PUSH2 0x248F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x266F JUMPI PUSH2 0x266E PUSH2 0x242A JUMP JUMPDEST JUMPDEST PUSH2 0x267A DUP5 DUP3 DUP6 PUSH2 0x24DB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2697 JUMPI PUSH2 0x2696 PUSH2 0x2425 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26A7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2640 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x26CA JUMPI PUSH2 0x26C9 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26D8 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x26E9 DUP8 DUP3 DUP9 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x26FA DUP8 DUP3 DUP9 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271B JUMPI PUSH2 0x271A PUSH2 0x20DE JUMP JUMPDEST JUMPDEST PUSH2 0x2727 DUP8 DUP3 DUP9 ADD PUSH2 0x2682 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x274A JUMPI PUSH2 0x2749 PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2758 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2769 DUP6 DUP3 DUP7 ADD PUSH2 0x2326 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x27BA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27CD JUMPI PUSH2 0x27CC PUSH2 0x2773 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x27E8 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x27F5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST PUSH2 0x2802 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22E5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x281F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x282C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x237B JUMP JUMPDEST 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 0x286D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x289F JUMPI PUSH2 0x289E PUSH2 0x2833 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C0 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x28CA DUP2 DUP6 PUSH2 0x28AA JUMP JUMPDEST SWAP4 POP PUSH2 0x28DA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291C PUSH1 0x5 DUP4 PUSH2 0x28AA JUMP JUMPDEST SWAP2 POP PUSH2 0x2927 DUP3 PUSH2 0x28E6 JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x293E DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2949 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x29E5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x29A8 JUMP JUMPDEST PUSH2 0x29EF DUP7 DUP4 PUSH2 0x29A8 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2C PUSH2 0x2A27 PUSH2 0x2A22 DUP5 PUSH2 0x2250 JUMP JUMPDEST PUSH2 0x2A07 JUMP JUMPDEST PUSH2 0x2250 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A46 DUP4 PUSH2 0x2A11 JUMP JUMPDEST PUSH2 0x2A5A PUSH2 0x2A52 DUP3 PUSH2 0x2A33 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x29B5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2A6F PUSH2 0x2A62 JUMP JUMPDEST PUSH2 0x2A7A DUP2 DUP5 DUP5 PUSH2 0x2A3D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A9E JUMPI PUSH2 0x2A93 PUSH1 0x0 DUP3 PUSH2 0x2A67 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2A80 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2AE3 JUMPI PUSH2 0x2AB4 DUP2 PUSH2 0x2983 JUMP JUMPDEST PUSH2 0x2ABD DUP5 PUSH2 0x2998 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2ACC JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2AE0 PUSH2 0x2AD8 DUP6 PUSH2 0x2998 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2A7F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B06 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2AE8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B1F DUP4 DUP4 PUSH2 0x2AF5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B38 DUP3 PUSH2 0x219E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B51 JUMPI PUSH2 0x2B50 PUSH2 0x242F JUMP JUMPDEST JUMPDEST PUSH2 0x2B5B DUP3 SLOAD PUSH2 0x27A2 JUMP JUMPDEST PUSH2 0x2B66 DUP3 DUP3 DUP6 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2B99 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2B87 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2B91 DUP6 DUP3 PUSH2 0x2B13 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2BF9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2BA7 DUP7 PUSH2 0x2983 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BCF JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2BAA JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2BEC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2BE8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2AF5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0D DUP3 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C19 DUP3 DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C24 DUP3 PUSH2 0x290F JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x2C86 DUP3 PUSH2 0x2C5F JUMP JUMPDEST PUSH2 0x2C90 DUP2 DUP6 PUSH2 0x2C6A JUMP JUMPDEST SWAP4 POP PUSH2 0x2CA0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BA JUMP JUMPDEST PUSH2 0x2CA9 DUP2 PUSH2 0x21E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2CC9 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CD6 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x22E5 JUMP JUMPDEST PUSH2 0x2CE3 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x237B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2CF5 DUP2 DUP5 PUSH2 0x2C7B JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2D0F DUP2 PUSH2 0x210F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x20D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2D39 DUP5 DUP3 DUP6 ADD PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D4D DUP3 PUSH2 0x2250 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D58 DUP4 PUSH2 0x2250 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D70 JUMPI PUSH2 0x2D6F PUSH2 0x2833 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 TIMESTAMP SELFBALANCE SMOD PUSH21 0xF454E660AA990254ED1F1D8F5271FFA5F567E4E79C PUSH25 0x81BF12EA2064736F6C634300081A0033000000000000000000 ", + "sourceMap": "428:1989:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:237;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:89:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3497:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3323:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2062:102:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4143:578:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1736:255:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;891::18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4787:132:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2236:226:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;779:107:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1271:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2185:118:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2518:93:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4985:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1846:327:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:153:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2178:237:18;2345:4;2372:36;2396:11;2372:23;:36::i;:::-;2365:43;;2178:237;;;:::o;2365:89:5:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;;3623:21;3636:7;3623:12;:21::i;:::-;3616:28;;3497:154;;;:::o;3323:113::-;3394:35;3403:2;3407:7;3416:12;:10;:12::i;:::-;3394:8;:35::i;:::-;3323:113;;:::o;2062:102:8:-;2114:7;2140:10;:17;;;;2133:24;;2062:102;:::o;4143:578:5:-;4251:1;4237:16;;:2;:16;;;4233:87;;4306:1;4276:33;;;;;;;;;;;:::i;:::-;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;4583:12;:10;:12::i;:::-;4562:7;:34::i;:::-;4538:58;;4627:4;4610:21;;:13;:21;;;4606:109;;4675:4;4681:7;4690:13;4654:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4606:109;4223:498;4143:578;;;:::o;1736:255:8:-;1824:7;1856:16;1866:5;1856:9;:16::i;:::-;1847:5;:25;1843:99;;1918:5;1925;1895:36;;;;;;;;;;;;:::i;:::-;;;;;;;;1843:99;1958:12;:19;1971:5;1958:19;;;;;;;;;;;;;;;:26;1978:5;1958:26;;;;;;;;;;;;1951:33;;1736:255;;;;:::o;891::18:-;1531:13:0;:11;:13::i;:::-;948:15:18::1;966:12;;:14;;;;;;;;;:::i;:::-;;;;;948:32;;990:22;1000:2;1004:7;990:9;:22::i;:::-;1022:117;1048:7;1093:25;1110:7;1093:16;:25::i;:::-;1076:52;;;;;;;;:::i;:::-;;;;;;;;;;;;;1022:12;:117::i;:::-;938:208;891:255:::0;:::o;4787:132:5:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2236:226:8:-;2302:7;2334:13;:11;:13::i;:::-;2325:5;:22;2321:101;;2401:1;2405:5;2370:41;;;;;;;;;;;;:::i;:::-;;;;;;;;2321:101;2438:10;2449:5;2438:17;;;;;;;;:::i;:::-;;;;;;;;;;2431:24;;2236:226;;;:::o;779:107:18:-;1531:13:0;:11;:13::i;:::-;871:8:18::1;852:16;:27;;;;;;:::i;:::-;;779:107:::0;:::o;1271:95::-;1321:7;1347:12;;1340:19;;1271:95;:::o;2185:118:5:-;2248:7;2274:22;2288:7;2274:13;:22::i;:::-;2267:29;;2185:118;;;:::o;1920:208::-;1983:7;2023:1;2006:19;;:5;:19;;;2002:87;;2075:1;2048:30;;;;;;;;;;;:::i;:::-;;;;;;;;2002:87;2105:9;:16;2115:5;2105:16;;;;;;;;;;;;;;;;2098:23;;1920:208;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2518:93:5:-;2565:13;2597:7;2590:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:93;:::o;3718:144::-;3803:52;3822:12;:10;:12::i;:::-;3836:8;3846;3803:18;:52::i;:::-;3718:144;;:::o;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;:::-;4985:208;;;;:::o;1846:327:18:-;1951:13;1976:21;2000:10;:8;:10::i;:::-;1976:34;;2063:1;2045:7;2039:21;:25;:127;;;;;;;;;;;;;;;;;2107:7;2116:18;:7;:16;:18::i;:::-;2090:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2039:127;2020:146;;;1846:327;;;:::o;3928:153:5:-;4016:4;4039:18;:25;4058:5;4039:25;;;;;;;;;;;;;;;:35;4065:8;4039:35;;;;;;;;;;;;;;;;;;;;;;;;;4032:42;;3928:153;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;937:207:9:-;1039:4;760:10;753:18;;1062:35;;;:11;:35;;;;:75;;;;1101:36;1125:11;1101:23;:36::i;:::-;1062:75;1055:82;;937:207;;;:::o;16138:241:5:-;16201:7;16220:13;16236:17;16245:7;16236:8;:17::i;:::-;16220:33;;16284:1;16267:19;;:5;:19;;;16263:88;;16332:7;16309:31;;;;;;;;;;;:::i;:::-;;;;;;;;16263:88;16367:5;16360:12;;;16138:241;;;:::o;5938:127::-;6008:7;6034:15;:24;6050:7;6034:24;;;;;;;;;;;;;;;;;;;;;6027:31;;5938:127;;;:::o;656:96:12:-;709:7;735:10;728:17;;656:96;:::o;14418:120:5:-;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;:::-;14418:120;;;:::o;1449:208:18:-;1592:7;1618:32;1632:2;1636:7;1645:4;1618:13;:32::i;:::-;1611:39;;1449:208;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;10633:100:5:-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;:::-;10633:100;;:::o;637:698:13:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;1922:167:9:-;2035:9;2013:10;:19;2024:7;2013:19;;;;;;;;;;;:31;;;;;;:::i;:::-;;2059:23;2074:7;2059:23;;;;;;:::i;:::-;;;;;;;;1922:167;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;15591:312:5:-;15718:1;15698:22;;:8;:22;;;15694:91;;15765:8;15743:31;;;;;;;;;;;:::i;:::-;;;;;;;;15694:91;15832:8;15794:18;:25;15813:5;15794:25;;;;;;;;;;;;;;;:35;15820:8;15794:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15877:8;15855:41;;15870:5;15855:41;;;15887:8;15855:41;;;;;;:::i;:::-;;;;;;;;15591:312;;;:::o;16918:782::-;17051:1;17034:2;:14;;;:18;17030:664;;;17088:2;17072:36;;;17109:12;:10;:12::i;:::-;17123:4;17129:7;17138:4;17072:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:1;17381:6;:13;:18;17377:293;;17452:2;17430:25;;;;;;;;;;;:::i;:::-;;;;;;;;17377:293;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;17200:41;;;17190:51;;;:6;:51;;;;17186:130;;17294:2;17272:25;;;;;;;;;;;:::i;:::-;;;;;;;;17186:130;17144:186;17030:664;16918:782;;;;:::o;1151:115:18:-;1211:13;1243:16;1236:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:115;:::o;1435:222:8:-;1537:4;1575:35;1560:50;;;:11;:50;;;;:90;;;;1614:36;1638:11;1614:23;:36::i;:::-;1560:90;1553:97;;1435:222;;;:::o;5707:115:5:-;5773:7;5799;:16;5807:7;5799:16;;;;;;;;;;;;;;;;;;;;;5792:23;;5707:115;;;:::o;14720:662::-;14880:9;:31;;;;14909:1;14893:18;;:4;:18;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;;15109:1;15093:18;;:4;:18;;;;:35;;;;;15124:4;15115:13;;:5;:13;;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15211:4;15189:27;;;;;;;;;;;:::i;:::-;;;;;;;;15089:142;15249:9;15245:81;;;15303:7;15299:2;15283:28;;15292:5;15283:28;;;;;;;;;;;;15245:81;14913:423;14876:460;15373:2;15346:15;:24;15362:7;15346:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14720:662;;;;:::o;2518:625:8:-;2613:7;2632:21;2656:32;2670:2;2674:7;2683:4;2656:13;:32::i;:::-;2632:56;;2728:1;2703:27;;:13;:27;;;2699:210;;2746:40;2778:7;2746:31;:40::i;:::-;2699:210;;;2824:2;2807:19;;:13;:19;;;2803:106;;2842:56;2875:13;2890:7;2842:32;:56::i;:::-;2803:106;2699:210;2936:1;2922:16;;:2;:16;;;2918:188;;2954:45;2991:7;2954:36;:45::i;:::-;2918:188;;;3037:2;3020:19;;:13;:19;;;3016:90;;3055:40;3083:2;3087:7;3055:27;:40::i;:::-;3016:90;2918:188;3123:13;3116:20;;;2518:625;;;;;:::o;10954:182:5:-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;:::-;10954:182;;;:::o;12214:916:16:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;1561:300:5:-;1663:4;1713:25;1698:40;;;:11;:40;;;;:104;;;;1769:33;1754:48;;;:11;:48;;;;1698:104;:156;;;;1818:36;1842:11;1818:23;:36::i;:::-;1698:156;1679:175;;1561:300;;;:::o;8838:795::-;8924:7;8943:12;8958:17;8967:7;8958:8;:17::i;:::-;8943:32;;9051:1;9035:18;;:4;:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;9031:86;9177:1;9161:18;;:4;:18;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;9387:1;9368:9;:15;9378:4;9368:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;9157:256;9441:1;9427:16;;:2;:16;;;9423:107;;9504:1;9487:9;:13;9497:2;9487:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9423:107;9559:2;9540:7;:16;9548:7;9540:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9596:7;9592:2;9577:27;;9586:4;9577:27;;;;;;;;;;;;9622:4;9615:11;;;8838:795;;;;;:::o;3846:161:8:-;3949:10;:17;;;;3922:15;:24;3938:7;3922:24;;;;;;;;;;;:44;;;;3976:10;3992:7;3976:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3846:161;:::o;4624:959::-;4886:22;4911:15;4921:4;4911:9;:15::i;:::-;4886:40;;4936:18;4957:17;:26;4975:7;4957:26;;;;;;;;;;;;4936:47;;5101:14;5087:10;:28;5083:323;;5131:19;5153:12;:18;5166:4;5153:18;;;;;;;;;;;;;;;:34;5172:14;5153:34;;;;;;;;;;;;5131:56;;5235:11;5202:12;:18;5215:4;5202:18;;;;;;;;;;;;;;;:30;5221:10;5202:30;;;;;;;;;;;:44;;;;5351:10;5318:17;:30;5336:11;5318:30;;;;;;;;;;;:43;;;;5117:289;5083:323;5499:17;:26;5517:7;5499:26;;;;;;;;;;;5492:33;;;5542:12;:18;5555:4;5542:18;;;;;;;;;;;;;;;:34;5561:14;5542:34;;;;;;;;;;;5535:41;;;4705:878;;4624:959;;:::o;5871:1061::-;6120:22;6165:1;6145:10;:17;;;;:21;;;;:::i;:::-;6120:46;;6176:18;6197:15;:24;6213:7;6197:24;;;;;;;;;;;;6176:45;;6543:19;6565:10;6576:14;6565:26;;;;;;;;:::i;:::-;;;;;;;;;;6543:48;;6627:11;6602:10;6613;6602:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;6737:10;6706:15;:28;6722:11;6706:28;;;;;;;;;;;:41;;;;6875:15;:24;6891:7;6875:24;;;;;;;;;;;6868:31;;;6909:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5942:990;;;5871:1061;:::o;3437:214::-;3521:14;3554:1;3538:13;3548:2;3538:9;:13::i;:::-;:17;;;;:::i;:::-;3521:34;;3592:7;3565:12;:16;3578:2;3565:16;;;;;;;;;;;;;;;:24;3582:6;3565:24;;;;;;;;;;;:34;;;;3638:6;3609:17;:26;3627:7;3609:26;;;;;;;;;;;:35;;;;3511:140;3437:214;;:::o;9955:327:5:-;10036:1;10022:16;;:2;:16;;;10018:87;;10091:1;10061:33;;;;;;;;;;;:::i;:::-;;;;;;;;10018:87;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;;10209:1;10184:27;;:13;:27;;;10180:96;;10262:1;10234:31;;;;;;;;;;;:::i;:::-;;;;;;;;10180:96;10008:274;9955:327;;:::o;762:146:14:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;7082:368:5:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;7269:1;7252:19;;:5;:19;;;7248:186;;7321:7;7298:31;;;;;;;;;;;:::i;:::-;;;;;;;;7248:186;7402:7;7411;7375:44;;;;;;;;;;;;:::i;:::-;;;;;;;;7189:255;7082:368;;;:::o;6376:272::-;6479:4;6533:1;6514:21;;:7;:21;;;;:127;;;;;6561:7;6552:16;;:5;:16;;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:52;:88;;;;6633:7;6608:32;;:21;6621:7;6608:12;:21::i;:::-;:32;;;6552:88;6514:127;6495:146;;6376:272;;;;;:::o;7:75:19:-;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:248::-;1880:1;1890:113;1904:6;1901:1;1898:13;1890:113;;;1989:1;1984:3;1980:11;1974:18;1970:1;1965:3;1961:11;1954:39;1926:2;1923:1;1919:10;1914:15;;1890:113;;;2037:1;2028:6;2023:3;2019:16;2012:27;1860:186;1798:248;;;:::o;2052:102::-;2093:6;2144:2;2140:7;2135:2;2128:5;2124:14;2120:28;2110:38;;2052:102;;;:::o;2160:377::-;2248:3;2276:39;2309:5;2276:39;:::i;:::-;2331:71;2395:6;2390:3;2331:71;:::i;:::-;2324:78;;2411:65;2469:6;2464:3;2457:4;2450:5;2446:16;2411:65;:::i;:::-;2501:29;2523:6;2501:29;:::i;:::-;2496:3;2492:39;2485:46;;2252:285;2160:377;;;;:::o;2543:313::-;2656:4;2694:2;2683:9;2679:18;2671:26;;2743:9;2737:4;2733:20;2729:1;2718:9;2714:17;2707:47;2771:78;2844:4;2835:6;2771:78;:::i;:::-;2763:86;;2543:313;;;;:::o;2862:77::-;2899:7;2928:5;2917:16;;2862:77;;;:::o;2945:122::-;3018:24;3036:5;3018:24;:::i;:::-;3011:5;3008:35;2998:63;;3057:1;3054;3047:12;2998:63;2945:122;:::o;3073:139::-;3119:5;3157:6;3144:20;3135:29;;3173:33;3200:5;3173:33;:::i;:::-;3073:139;;;;:::o;3218:329::-;3277:6;3326:2;3314:9;3305:7;3301:23;3297:32;3294:119;;;3332:79;;:::i;:::-;3294:119;3452:1;3477:53;3522:7;3513:6;3502:9;3498:22;3477:53;:::i;:::-;3467:63;;3423:117;3218:329;;;;:::o;3553:126::-;3590:7;3630:42;3623:5;3619:54;3608:65;;3553:126;;;:::o;3685:96::-;3722:7;3751:24;3769:5;3751:24;:::i;:::-;3740:35;;3685:96;;;:::o;3787:118::-;3874:24;3892:5;3874:24;:::i;:::-;3869:3;3862:37;3787:118;;:::o;3911:222::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:71;4123:1;4112:9;4108:17;4099:6;4055:71;:::i;:::-;3911:222;;;;:::o;4139:122::-;4212:24;4230:5;4212:24;:::i;:::-;4205:5;4202:35;4192:63;;4251:1;4248;4241:12;4192:63;4139:122;:::o;4267:139::-;4313:5;4351:6;4338:20;4329:29;;4367:33;4394:5;4367:33;:::i;:::-;4267:139;;;;:::o;4412:474::-;4480:6;4488;4537:2;4525:9;4516:7;4512:23;4508:32;4505:119;;;4543:79;;:::i;:::-;4505:119;4663:1;4688:53;4733:7;4724:6;4713:9;4709:22;4688:53;:::i;:::-;4678:63;;4634:117;4790:2;4816:53;4861:7;4852:6;4841:9;4837:22;4816:53;:::i;:::-;4806:63;;4761:118;4412:474;;;;;:::o;4892:118::-;4979:24;4997:5;4979:24;:::i;:::-;4974:3;4967:37;4892:118;;:::o;5016:222::-;5109:4;5147:2;5136:9;5132:18;5124:26;;5160:71;5228:1;5217:9;5213:17;5204:6;5160:71;:::i;:::-;5016:222;;;;:::o;5244:619::-;5321:6;5329;5337;5386:2;5374:9;5365:7;5361:23;5357:32;5354:119;;;5392:79;;:::i;:::-;5354:119;5512:1;5537:53;5582:7;5573:6;5562:9;5558:22;5537:53;:::i;:::-;5527:63;;5483:117;5639:2;5665:53;5710:7;5701:6;5690:9;5686:22;5665:53;:::i;:::-;5655:63;;5610:118;5767:2;5793:53;5838:7;5829:6;5818:9;5814:22;5793:53;:::i;:::-;5783:63;;5738:118;5244:619;;;;;:::o;5869:329::-;5928:6;5977:2;5965:9;5956:7;5952:23;5948:32;5945:119;;;5983:79;;:::i;:::-;5945:119;6103:1;6128:53;6173:7;6164:6;6153:9;6149:22;6128:53;:::i;:::-;6118:63;;6074:117;5869:329;;;;:::o;6204:117::-;6313:1;6310;6303:12;6327:117;6436:1;6433;6426:12;6450:180;6498:77;6495:1;6488:88;6595:4;6592:1;6585:15;6619:4;6616:1;6609:15;6636:281;6719:27;6741:4;6719:27;:::i;:::-;6711:6;6707:40;6849:6;6837:10;6834:22;6813:18;6801:10;6798:34;6795:62;6792:88;;;6860:18;;:::i;:::-;6792:88;6900:10;6896:2;6889:22;6679:238;6636:281;;:::o;6923:129::-;6957:6;6984:20;;:::i;:::-;6974:30;;7013:33;7041:4;7033:6;7013:33;:::i;:::-;6923:129;;;:::o;7058:308::-;7120:4;7210:18;7202:6;7199:30;7196:56;;;7232:18;;:::i;:::-;7196:56;7270:29;7292:6;7270:29;:::i;:::-;7262:37;;7354:4;7348;7344:15;7336:23;;7058:308;;;:::o;7372:148::-;7470:6;7465:3;7460;7447:30;7511:1;7502:6;7497:3;7493:16;7486:27;7372:148;;;:::o;7526:425::-;7604:5;7629:66;7645:49;7687:6;7645:49;:::i;:::-;7629:66;:::i;:::-;7620:75;;7718:6;7711:5;7704:21;7756:4;7749:5;7745:16;7794:3;7785:6;7780:3;7776:16;7773:25;7770:112;;;7801:79;;:::i;:::-;7770:112;7891:54;7938:6;7933:3;7928;7891:54;:::i;:::-;7610:341;7526:425;;;;;:::o;7971:340::-;8027:5;8076:3;8069:4;8061:6;8057:17;8053:27;8043:122;;8084:79;;:::i;:::-;8043:122;8201:6;8188:20;8226:79;8301:3;8293:6;8286:4;8278:6;8274:17;8226:79;:::i;:::-;8217:88;;8033:278;7971:340;;;;:::o;8317:509::-;8386:6;8435:2;8423:9;8414:7;8410:23;8406:32;8403:119;;;8441:79;;:::i;:::-;8403:119;8589:1;8578:9;8574:17;8561:31;8619:18;8611:6;8608:30;8605:117;;;8641:79;;:::i;:::-;8605:117;8746:63;8801:7;8792:6;8781:9;8777:22;8746:63;:::i;:::-;8736:73;;8532:287;8317:509;;;;:::o;8832:116::-;8902:21;8917:5;8902:21;:::i;:::-;8895:5;8892:32;8882:60;;8938:1;8935;8928:12;8882:60;8832:116;:::o;8954:133::-;8997:5;9035:6;9022:20;9013:29;;9051:30;9075:5;9051:30;:::i;:::-;8954:133;;;;:::o;9093:468::-;9158:6;9166;9215:2;9203:9;9194:7;9190:23;9186:32;9183:119;;;9221:79;;:::i;:::-;9183:119;9341:1;9366:53;9411:7;9402:6;9391:9;9387:22;9366:53;:::i;:::-;9356:63;;9312:117;9468:2;9494:50;9536:7;9527:6;9516:9;9512:22;9494:50;:::i;:::-;9484:60;;9439:115;9093:468;;;;;:::o;9567:307::-;9628:4;9718:18;9710:6;9707:30;9704:56;;;9740:18;;:::i;:::-;9704:56;9778:29;9800:6;9778:29;:::i;:::-;9770:37;;9862:4;9856;9852:15;9844:23;;9567:307;;;:::o;9880:423::-;9957:5;9982:65;9998:48;10039:6;9998:48;:::i;:::-;9982:65;:::i;:::-;9973:74;;10070:6;10063:5;10056:21;10108:4;10101:5;10097:16;10146:3;10137:6;10132:3;10128:16;10125:25;10122:112;;;10153:79;;:::i;:::-;10122:112;10243:54;10290:6;10285:3;10280;10243:54;:::i;:::-;9963:340;9880:423;;;;;:::o;10322:338::-;10377:5;10426:3;10419:4;10411:6;10407:17;10403:27;10393:122;;10434:79;;:::i;:::-;10393:122;10551:6;10538:20;10576:78;10650:3;10642:6;10635:4;10627:6;10623:17;10576:78;:::i;:::-;10567:87;;10383:277;10322:338;;;;:::o;10666:943::-;10761:6;10769;10777;10785;10834:3;10822:9;10813:7;10809:23;10805:33;10802:120;;;10841:79;;:::i;:::-;10802:120;10961:1;10986:53;11031:7;11022:6;11011:9;11007:22;10986:53;:::i;:::-;10976:63;;10932:117;11088:2;11114:53;11159:7;11150:6;11139:9;11135:22;11114:53;:::i;:::-;11104:63;;11059:118;11216:2;11242:53;11287:7;11278:6;11267:9;11263:22;11242:53;:::i;:::-;11232:63;;11187:118;11372:2;11361:9;11357:18;11344:32;11403:18;11395:6;11392:30;11389:117;;;11425:79;;:::i;:::-;11389:117;11530:62;11584:7;11575:6;11564:9;11560:22;11530:62;:::i;:::-;11520:72;;11315:287;10666:943;;;;;;;:::o;11615:474::-;11683:6;11691;11740:2;11728:9;11719:7;11715:23;11711:32;11708:119;;;11746:79;;:::i;:::-;11708:119;11866:1;11891:53;11936:7;11927:6;11916:9;11912:22;11891:53;:::i;:::-;11881:63;;11837:117;11993:2;12019:53;12064:7;12055:6;12044:9;12040:22;12019:53;:::i;:::-;12009:63;;11964:118;11615:474;;;;;:::o;12095:180::-;12143:77;12140:1;12133:88;12240:4;12237:1;12230:15;12264:4;12261:1;12254:15;12281:320;12325:6;12362:1;12356:4;12352:12;12342:22;;12409:1;12403:4;12399:12;12430:18;12420:81;;12486:4;12478:6;12474:17;12464:27;;12420:81;12548:2;12540:6;12537:14;12517:18;12514:38;12511:84;;12567:18;;:::i;:::-;12511:84;12332:269;12281:320;;;:::o;12607:442::-;12756:4;12794:2;12783:9;12779:18;12771:26;;12807:71;12875:1;12864:9;12860:17;12851:6;12807:71;:::i;:::-;12888:72;12956:2;12945:9;12941:18;12932:6;12888:72;:::i;:::-;12970;13038:2;13027:9;13023:18;13014:6;12970:72;:::i;:::-;12607:442;;;;;;:::o;13055:332::-;13176:4;13214:2;13203:9;13199:18;13191:26;;13227:71;13295:1;13284:9;13280:17;13271:6;13227:71;:::i;:::-;13308:72;13376:2;13365:9;13361:18;13352:6;13308:72;:::i;:::-;13055:332;;;;;:::o;13393:180::-;13441:77;13438:1;13431:88;13538:4;13535:1;13528:15;13562:4;13559:1;13552:15;13579:233;13618:3;13641:24;13659:5;13641:24;:::i;:::-;13632:33;;13687:66;13680:5;13677:77;13674:103;;13757:18;;:::i;:::-;13674:103;13804:1;13797:5;13793:13;13786:20;;13579:233;;;:::o;13818:148::-;13920:11;13957:3;13942:18;;13818:148;;;;:::o;13972:390::-;14078:3;14106:39;14139:5;14106:39;:::i;:::-;14161:89;14243:6;14238:3;14161:89;:::i;:::-;14154:96;;14259:65;14317:6;14312:3;14305:4;14298:5;14294:16;14259:65;:::i;:::-;14349:6;14344:3;14340:16;14333:23;;14082:280;13972:390;;;;:::o;14368:155::-;14508:7;14504:1;14496:6;14492:14;14485:31;14368:155;:::o;14529:400::-;14689:3;14710:84;14792:1;14787:3;14710:84;:::i;:::-;14703:91;;14803:93;14892:3;14803:93;:::i;:::-;14921:1;14916:3;14912:11;14905:18;;14529:400;;;:::o;14935:541::-;15168:3;15190:95;15281:3;15272:6;15190:95;:::i;:::-;15183:102;;15302:148;15446:3;15302:148;:::i;:::-;15295:155;;15467:3;15460:10;;14935:541;;;;:::o;15482:180::-;15530:77;15527:1;15520:88;15627:4;15624:1;15617:15;15651:4;15648:1;15641:15;15668:141;15717:4;15740:3;15732:11;;15763:3;15760:1;15753:14;15797:4;15794:1;15784:18;15776:26;;15668:141;;;:::o;15815:93::-;15852:6;15899:2;15894;15887:5;15883:14;15879:23;15869:33;;15815:93;;;:::o;15914:107::-;15958:8;16008:5;16002:4;15998:16;15977:37;;15914:107;;;;:::o;16027:393::-;16096:6;16146:1;16134:10;16130:18;16169:97;16199:66;16188:9;16169:97;:::i;:::-;16287:39;16317:8;16306:9;16287:39;:::i;:::-;16275:51;;16359:4;16355:9;16348:5;16344:21;16335:30;;16408:4;16398:8;16394:19;16387:5;16384:30;16374:40;;16103:317;;16027:393;;;;;:::o;16426:60::-;16454:3;16475:5;16468:12;;16426:60;;;:::o;16492:142::-;16542:9;16575:53;16593:34;16602:24;16620:5;16602:24;:::i;:::-;16593:34;:::i;:::-;16575:53;:::i;:::-;16562:66;;16492:142;;;:::o;16640:75::-;16683:3;16704:5;16697:12;;16640:75;;;:::o;16721:269::-;16831:39;16862:7;16831:39;:::i;:::-;16892:91;16941:41;16965:16;16941:41;:::i;:::-;16933:6;16926:4;16920:11;16892:91;:::i;:::-;16886:4;16879:105;16797:193;16721:269;;;:::o;16996:73::-;17041:3;16996:73;:::o;17075:189::-;17152:32;;:::i;:::-;17193:65;17251:6;17243;17237:4;17193:65;:::i;:::-;17128:136;17075:189;;:::o;17270:186::-;17330:120;17347:3;17340:5;17337:14;17330:120;;;17401:39;17438:1;17431:5;17401:39;:::i;:::-;17374:1;17367:5;17363:13;17354:22;;17330:120;;;17270:186;;:::o;17462:543::-;17563:2;17558:3;17555:11;17552:446;;;17597:38;17629:5;17597:38;:::i;:::-;17681:29;17699:10;17681:29;:::i;:::-;17671:8;17667:44;17864:2;17852:10;17849:18;17846:49;;;17885:8;17870:23;;17846:49;17908:80;17964:22;17982:3;17964:22;:::i;:::-;17954:8;17950:37;17937:11;17908:80;:::i;:::-;17567:431;;17552:446;17462:543;;;:::o;18011:117::-;18065:8;18115:5;18109:4;18105:16;18084:37;;18011:117;;;;:::o;18134:169::-;18178:6;18211:51;18259:1;18255:6;18247:5;18244:1;18240:13;18211:51;:::i;:::-;18207:56;18292:4;18286;18282:15;18272:25;;18185:118;18134:169;;;;:::o;18308:295::-;18384:4;18530:29;18555:3;18549:4;18530:29;:::i;:::-;18522:37;;18592:3;18589:1;18585:11;18579:4;18576:21;18568:29;;18308:295;;;;:::o;18608:1395::-;18725:37;18758:3;18725:37;:::i;:::-;18827:18;18819:6;18816:30;18813:56;;;18849:18;;:::i;:::-;18813:56;18893:38;18925:4;18919:11;18893:38;:::i;:::-;18978:67;19038:6;19030;19024:4;18978:67;:::i;:::-;19072:1;19096:4;19083:17;;19128:2;19120:6;19117:14;19145:1;19140:618;;;;19802:1;19819:6;19816:77;;;19868:9;19863:3;19859:19;19853:26;19844:35;;19816:77;19919:67;19979:6;19972:5;19919:67;:::i;:::-;19913:4;19906:81;19775:222;19110:887;;19140:618;19192:4;19188:9;19180:6;19176:22;19226:37;19258:4;19226:37;:::i;:::-;19285:1;19299:208;19313:7;19310:1;19307:14;19299:208;;;19392:9;19387:3;19383:19;19377:26;19369:6;19362:42;19443:1;19435:6;19431:14;19421:24;;19490:2;19479:9;19475:18;19462:31;;19336:4;19333:1;19329:12;19324:17;;19299:208;;;19535:6;19526:7;19523:19;19520:179;;;19593:9;19588:3;19584:19;19578:26;19636:48;19678:4;19670:6;19666:17;19655:9;19636:48;:::i;:::-;19628:6;19621:64;19543:156;19520:179;19745:1;19741;19733:6;19729:14;19725:22;19719:4;19712:36;19147:611;;;19110:887;;18700:1303;;;18608:1395;;:::o;20009:701::-;20290:3;20312:95;20403:3;20394:6;20312:95;:::i;:::-;20305:102;;20424:95;20515:3;20506:6;20424:95;:::i;:::-;20417:102;;20536:148;20680:3;20536:148;:::i;:::-;20529:155;;20701:3;20694:10;;20009:701;;;;;:::o;20716:180::-;20764:77;20761:1;20754:88;20861:4;20858:1;20851:15;20885:4;20882:1;20875:15;20902:98;20953:6;20987:5;20981:12;20971:22;;20902:98;;;:::o;21006:168::-;21089:11;21123:6;21118:3;21111:19;21163:4;21158:3;21154:14;21139:29;;21006:168;;;;:::o;21180:373::-;21266:3;21294:38;21326:5;21294:38;:::i;:::-;21348:70;21411:6;21406:3;21348:70;:::i;:::-;21341:77;;21427:65;21485:6;21480:3;21473:4;21466:5;21462:16;21427:65;:::i;:::-;21517:29;21539:6;21517:29;:::i;:::-;21512:3;21508:39;21501:46;;21270:283;21180:373;;;;:::o;21559:640::-;21754:4;21792:3;21781:9;21777:19;21769:27;;21806:71;21874:1;21863:9;21859:17;21850:6;21806:71;:::i;:::-;21887:72;21955:2;21944:9;21940:18;21931:6;21887:72;:::i;:::-;21969;22037:2;22026:9;22022:18;22013:6;21969:72;:::i;:::-;22088:9;22082:4;22078:20;22073:2;22062:9;22058:18;22051:48;22116:76;22187:4;22178:6;22116:76;:::i;:::-;22108:84;;21559:640;;;;;;;:::o;22205:141::-;22261:5;22292:6;22286:13;22277:22;;22308:32;22334:5;22308:32;:::i;:::-;22205:141;;;;:::o;22352:349::-;22421:6;22470:2;22458:9;22449:7;22445:23;22441:32;22438:119;;;22476:79;;:::i;:::-;22438:119;22596:1;22621:63;22676:7;22667:6;22656:9;22652:22;22621:63;:::i;:::-;22611:73;;22567:127;22352:349;;;;:::o;22707:194::-;22747:4;22767:20;22785:1;22767:20;:::i;:::-;22762:25;;22801:20;22819:1;22801:20;:::i;:::-;22796:25;;22845:1;22842;22838:9;22830:17;;22869:1;22863:4;22860:11;22857:37;;;22874:18;;:::i;:::-;22857:37;22707:194;;;;:::o;22907:180::-;22955:77;22952:1;22945:88;23052:4;23049:1;23042:15;23076:4;23073:1;23066:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "2347800", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "approve(address,uint256)": "infinite", + "balanceOf(address)": "infinite", + "getApproved(uint256)": "infinite", + "getCurrentTokenId()": "2460", + "isApprovedForAll(address,address)": "infinite", + "name()": "infinite", + "owner()": "2633", + "ownerOf(uint256)": "infinite", + "renounceOwnership()": "infinite", + "safeMint(address)": "infinite", + "safeTransferFrom(address,address,uint256)": "infinite", + "safeTransferFrom(address,address,uint256,bytes)": "infinite", + "setApprovalForAll(address,bool)": "infinite", + "setBaseURI(string)": "infinite", + "supportsInterface(bytes4)": "1024", + "symbol()": "infinite", + "tokenByIndex(uint256)": "infinite", + "tokenOfOwnerByIndex(address,uint256)": "infinite", + "tokenURI(uint256)": "infinite", + "totalSupply()": "2557", + "transferFrom(address,address,uint256)": "infinite", + "transferOwnership(address)": "infinite" + }, + "internal": { + "_baseURI()": "infinite", + "_increaseBalance(address,uint128)": "infinite", + "_update(address,uint256,address)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "80" + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 428, + "end": 2417, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "CALLVALUE", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "DUP1", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "ISZERO", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSH [tag]", + "source": 18, + "value": "1" + }, + { + "begin": 608, + "end": 774, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 608, + "end": 774, + "name": "DUP1", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "REVERT", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "tag", + "source": 18, + "value": "1" + }, + { + "begin": 608, + "end": 774, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "POP", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 608, + "end": 774, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSHSIZE", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "CODESIZE", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "SUB", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "DUP1", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSHSIZE", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "DUP4", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "CODECOPY", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "DUP2", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "DUP2", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "ADD", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 608, + "end": 774, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "DUP2", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "ADD", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSH [tag]", + "source": 18, + "value": "2" + }, + { + "begin": 608, + "end": 774, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "PUSH [tag]", + "source": 18, + "value": "3" + }, + { + "begin": 608, + "end": 774, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "tag", + "source": 18, + "value": "2" + }, + { + "begin": 608, + "end": 774, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 692, + "end": 702, + "name": "CALLER", + "source": 18 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1381, + "end": 1494, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1381, + "end": 1494, + "name": "ADD", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1381, + "end": 1494, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "7" + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 1381, + "end": 1494, + "name": "ADD", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "436F72654E465400000000000000000000000000000000000000000000000000" + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "POP", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1381, + "end": 1494, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1381, + "end": 1494, + "name": "ADD", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1381, + "end": 1494, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 1381, + "end": 1494, + "name": "ADD", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "PUSH", + "source": 5, + "value": "434F524500000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1381, + "end": 1494, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "POP", + "source": 5 + }, + { + "begin": 1455, + "end": 1460, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1447, + "end": 1452, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 1447, + "end": 1460, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1447, + "end": 1460, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1447, + "end": 1460, + "name": "PUSH [tag]", + "source": 5, + "value": "8" + }, + { + "begin": 1447, + "end": 1460, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 1447, + "end": 1460, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1447, + "end": 1460, + "name": "PUSH [tag]", + "source": 5, + "value": "9" + }, + { + "begin": 1447, + "end": 1460, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1447, + "end": 1460, + "name": "tag", + "source": 5, + "value": "8" + }, + { + "begin": 1447, + "end": 1460, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1447, + "end": 1460, + "name": "POP", + "source": 5 + }, + { + "begin": 1480, + "end": 1487, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1470, + "end": 1477, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 1470, + "end": 1487, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1470, + "end": 1487, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1470, + "end": 1487, + "name": "PUSH [tag]", + "source": 5, + "value": "10" + }, + { + "begin": 1470, + "end": 1487, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 1470, + "end": 1487, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1470, + "end": 1487, + "name": "PUSH [tag]", + "source": 5, + "value": "9" + }, + { + "begin": 1470, + "end": 1487, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1470, + "end": 1487, + "name": "tag", + "source": 5, + "value": "10" + }, + { + "begin": 1470, + "end": 1487, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1470, + "end": 1487, + "name": "POP", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "POP", + "source": 5 + }, + { + "begin": 1381, + "end": 1494, + "name": "POP", + "source": 5 + }, + { + "begin": 1297, + "end": 1298, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1273, + "end": 1299, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1273, + "end": 1299, + "name": "AND", + "source": 0 + }, + { + "begin": 1273, + "end": 1285, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1273, + "end": 1299, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1273, + "end": 1299, + "name": "AND", + "source": 0 + }, + { + "begin": 1273, + "end": 1299, + "name": "SUB", + "source": 0 + }, + { + "begin": 1269, + "end": 1364, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 1269, + "end": 1364, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1350, + "end": 1351, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1322, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1322, + "end": 1353, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "1E4FBDF700000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1322, + "end": 1353, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 1322, + "end": 1353, + "name": "ADD", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 1322, + "end": 1353, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 1322, + "end": 1353, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 1322, + "end": 1353, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1322, + "end": 1353, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "SUB", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1322, + "end": 1353, + "name": "REVERT", + "source": 0 + }, + { + "begin": 1269, + "end": 1364, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 1269, + "end": 1364, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1373, + "end": 1405, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 1392, + "end": 1404, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1373, + "end": 1391, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 1373, + "end": 1391, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1373, + "end": 1391, + "name": "SHL", + "source": 0 + }, + { + "begin": 1373, + "end": 1405, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1373, + "end": 1405, + "name": "SHR", + "source": 0 + }, + { + "begin": 1373, + "end": 1405, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1373, + "end": 1405, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 1373, + "end": 1405, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1225, + "end": 1412, + "name": "POP", + "source": 0 + }, + { + "begin": 733, + "end": 741, + "modifierDepth": 2, + "name": "DUP1", + "source": 18 + }, + { + "begin": 714, + "end": 730, + "modifierDepth": 2, + "name": "PUSH", + "source": 18, + "value": "D" + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "DUP2", + "source": 18 + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 18, + "value": "18" + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 18, + "value": "9" + }, + { + "begin": 714, + "end": 741, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 18 + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "tag", + "source": 18, + "value": "18" + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 714, + "end": 741, + "modifierDepth": 2, + "name": "POP", + "source": 18 + }, + { + "begin": 766, + "end": 767, + "modifierDepth": 2, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 751, + "end": 763, + "modifierDepth": 2, + "name": "PUSH", + "source": 18, + "value": "C" + }, + { + "begin": 751, + "end": 767, + "modifierDepth": 2, + "name": "DUP2", + "source": 18 + }, + { + "begin": 751, + "end": 767, + "modifierDepth": 2, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 751, + "end": 767, + "modifierDepth": 2, + "name": "SSTORE", + "source": 18 + }, + { + "begin": 751, + "end": 767, + "modifierDepth": 2, + "name": "POP", + "source": 18 + }, + { + "begin": 608, + "end": 774, + "name": "POP", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "19" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMP", + "source": 18 + }, + { + "begin": 2912, + "end": 3099, + "name": "tag", + "source": 0, + "value": "16" + }, + { + "begin": 2912, + "end": 3099, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2985, + "end": 3001, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "B" + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3004, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 3004, + "end": 3010, + "name": "EXP", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "DIV", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3004, + "end": 3010, + "name": "AND", + "source": 0 + }, + { + "begin": 2985, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2985, + "end": 3010, + "name": "POP", + "source": 0 + }, + { + "begin": 3029, + "end": 3037, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3020, + "end": 3026, + "name": "PUSH", + "source": 0, + "value": "B" + }, + { + "begin": 3020, + "end": 3026, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3020, + "end": 3037, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 3020, + "end": 3037, + "name": "EXP", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3020, + "end": 3037, + "name": "MUL", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "NOT", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "AND", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "DUP4", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3020, + "end": 3037, + "name": "AND", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "MUL", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "OR", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "POP", + "source": 0 + }, + { + "begin": 3083, + "end": 3091, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3052, + "end": 3092, + "name": "AND", + "source": 0 + }, + { + "begin": 3073, + "end": 3081, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3052, + "end": 3092, + "name": "AND", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0" + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3052, + "end": 3092, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3052, + "end": 3092, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "SUB", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "LOG3", + "source": 0 + }, + { + "begin": 2975, + "end": 3099, + "name": "POP", + "source": 0 + }, + { + "begin": 2912, + "end": 3099, + "name": "POP", + "source": 0 + }, + { + "begin": 2912, + "end": 3099, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7, + "end": 82, + "name": "tag", + "source": 19, + "value": "21" + }, + { + "begin": 7, + "end": 82, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 40, + "end": 46, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 73, + "end": 75, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 67, + "end": 76, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 57, + "end": 76, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 57, + "end": 76, + "name": "POP", + "source": 19 + }, + { + "begin": 7, + "end": 82, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7, + "end": 82, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 88, + "end": 205, + "name": "tag", + "source": 19, + "value": "22" + }, + { + "begin": 88, + "end": 205, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 197, + "end": 198, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 194, + "end": 195, + "name": "DUP1", + "source": 19 + }, + { + "begin": 187, + "end": 199, + "name": "REVERT", + "source": 19 + }, + { + "begin": 211, + "end": 328, + "name": "tag", + "source": 19, + "value": "23" + }, + { + "begin": 211, + "end": 328, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 320, + "end": 321, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 317, + "end": 318, + "name": "DUP1", + "source": 19 + }, + { + "begin": 310, + "end": 322, + "name": "REVERT", + "source": 19 + }, + { + "begin": 334, + "end": 451, + "name": "tag", + "source": 19, + "value": "24" + }, + { + "begin": 334, + "end": 451, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 443, + "end": 444, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 440, + "end": 441, + "name": "DUP1", + "source": 19 + }, + { + "begin": 433, + "end": 445, + "name": "REVERT", + "source": 19 + }, + { + "begin": 457, + "end": 574, + "name": "tag", + "source": 19, + "value": "25" + }, + { + "begin": 457, + "end": 574, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 566, + "end": 567, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 563, + "end": 564, + "name": "DUP1", + "source": 19 + }, + { + "begin": 556, + "end": 568, + "name": "REVERT", + "source": 19 + }, + { + "begin": 580, + "end": 682, + "name": "tag", + "source": 19, + "value": "26" + }, + { + "begin": 580, + "end": 682, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 621, + "end": 627, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 672, + "end": 674, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 668, + "end": 675, + "name": "NOT", + "source": 19 + }, + { + "begin": 663, + "end": 665, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 656, + "end": 661, + "name": "DUP4", + "source": 19 + }, + { + "begin": 652, + "end": 666, + "name": "ADD", + "source": 19 + }, + { + "begin": 648, + "end": 676, + "name": "AND", + "source": 19 + }, + { + "begin": 638, + "end": 676, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 638, + "end": 676, + "name": "POP", + "source": 19 + }, + { + "begin": 580, + "end": 682, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 580, + "end": 682, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 580, + "end": 682, + "name": "POP", + "source": 19 + }, + { + "begin": 580, + "end": 682, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 688, + "end": 868, + "name": "tag", + "source": 19, + "value": "27" + }, + { + "begin": 688, + "end": 868, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 736, + "end": 813, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 733, + "end": 734, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 726, + "end": 814, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 833, + "end": 837, + "name": "PUSH", + "source": 19, + "value": "41" + }, + { + "begin": 830, + "end": 831, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 823, + "end": 838, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 857, + "end": 861, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 854, + "end": 855, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 847, + "end": 862, + "name": "REVERT", + "source": 19 + }, + { + "begin": 874, + "end": 1155, + "name": "tag", + "source": 19, + "value": "28" + }, + { + "begin": 874, + "end": 1155, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 957, + "end": 984, + "name": "PUSH [tag]", + "source": 19, + "value": "65" + }, + { + "begin": 979, + "end": 983, + "name": "DUP3", + "source": 19 + }, + { + "begin": 957, + "end": 984, + "name": "PUSH [tag]", + "source": 19, + "value": "26" + }, + { + "begin": 957, + "end": 984, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 957, + "end": 984, + "name": "tag", + "source": 19, + "value": "65" + }, + { + "begin": 957, + "end": 984, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 949, + "end": 955, + "name": "DUP2", + "source": 19 + }, + { + "begin": 945, + "end": 985, + "name": "ADD", + "source": 19 + }, + { + "begin": 1087, + "end": 1093, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1075, + "end": 1085, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1072, + "end": 1094, + "name": "LT", + "source": 19 + }, + { + "begin": 1051, + "end": 1069, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 1039, + "end": 1049, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1036, + "end": 1070, + "name": "GT", + "source": 19 + }, + { + "begin": 1033, + "end": 1095, + "name": "OR", + "source": 19 + }, + { + "begin": 1030, + "end": 1118, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 1030, + "end": 1118, + "name": "PUSH [tag]", + "source": 19, + "value": "66" + }, + { + "begin": 1030, + "end": 1118, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 1098, + "end": 1116, + "name": "PUSH [tag]", + "source": 19, + "value": "67" + }, + { + "begin": 1098, + "end": 1116, + "name": "PUSH [tag]", + "source": 19, + "value": "27" + }, + { + "begin": 1098, + "end": 1116, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1098, + "end": 1116, + "name": "tag", + "source": 19, + "value": "67" + }, + { + "begin": 1098, + "end": 1116, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1030, + "end": 1118, + "name": "tag", + "source": 19, + "value": "66" + }, + { + "begin": 1030, + "end": 1118, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1138, + "end": 1148, + "name": "DUP1", + "source": 19 + }, + { + "begin": 1134, + "end": 1136, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 1127, + "end": 1149, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 917, + "end": 1155, + "name": "POP", + "source": 19 + }, + { + "begin": 874, + "end": 1155, + "name": "POP", + "source": 19 + }, + { + "begin": 874, + "end": 1155, + "name": "POP", + "source": 19 + }, + { + "begin": 874, + "end": 1155, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1161, + "end": 1290, + "name": "tag", + "source": 19, + "value": "29" + }, + { + "begin": 1161, + "end": 1290, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1195, + "end": 1201, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1222, + "end": 1242, + "name": "PUSH [tag]", + "source": 19, + "value": "69" + }, + { + "begin": 1222, + "end": 1242, + "name": "PUSH [tag]", + "source": 19, + "value": "21" + }, + { + "begin": 1222, + "end": 1242, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1222, + "end": 1242, + "name": "tag", + "source": 19, + "value": "69" + }, + { + "begin": 1222, + "end": 1242, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1212, + "end": 1242, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1212, + "end": 1242, + "name": "POP", + "source": 19 + }, + { + "begin": 1251, + "end": 1284, + "name": "PUSH [tag]", + "source": 19, + "value": "70" + }, + { + "begin": 1279, + "end": 1283, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1271, + "end": 1277, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1251, + "end": 1284, + "name": "PUSH [tag]", + "source": 19, + "value": "28" + }, + { + "begin": 1251, + "end": 1284, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1251, + "end": 1284, + "name": "tag", + "source": 19, + "value": "70" + }, + { + "begin": 1251, + "end": 1284, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1161, + "end": 1290, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 1161, + "end": 1290, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1161, + "end": 1290, + "name": "POP", + "source": 19 + }, + { + "begin": 1161, + "end": 1290, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1296, + "end": 1604, + "name": "tag", + "source": 19, + "value": "30" + }, + { + "begin": 1296, + "end": 1604, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1358, + "end": 1362, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1448, + "end": 1466, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 1440, + "end": 1446, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1437, + "end": 1467, + "name": "GT", + "source": 19 + }, + { + "begin": 1434, + "end": 1490, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 1434, + "end": 1490, + "name": "PUSH [tag]", + "source": 19, + "value": "72" + }, + { + "begin": 1434, + "end": 1490, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 1470, + "end": 1488, + "name": "PUSH [tag]", + "source": 19, + "value": "73" + }, + { + "begin": 1470, + "end": 1488, + "name": "PUSH [tag]", + "source": 19, + "value": "27" + }, + { + "begin": 1470, + "end": 1488, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1470, + "end": 1488, + "name": "tag", + "source": 19, + "value": "73" + }, + { + "begin": 1470, + "end": 1488, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1434, + "end": 1490, + "name": "tag", + "source": 19, + "value": "72" + }, + { + "begin": 1434, + "end": 1490, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1508, + "end": 1537, + "name": "PUSH [tag]", + "source": 19, + "value": "74" + }, + { + "begin": 1530, + "end": 1536, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1508, + "end": 1537, + "name": "PUSH [tag]", + "source": 19, + "value": "26" + }, + { + "begin": 1508, + "end": 1537, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1508, + "end": 1537, + "name": "tag", + "source": 19, + "value": "74" + }, + { + "begin": 1508, + "end": 1537, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1500, + "end": 1537, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1500, + "end": 1537, + "name": "POP", + "source": 19 + }, + { + "begin": 1592, + "end": 1596, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 1586, + "end": 1590, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1582, + "end": 1597, + "name": "ADD", + "source": 19 + }, + { + "begin": 1574, + "end": 1597, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1574, + "end": 1597, + "name": "POP", + "source": 19 + }, + { + "begin": 1296, + "end": 1604, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 1296, + "end": 1604, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1296, + "end": 1604, + "name": "POP", + "source": 19 + }, + { + "begin": 1296, + "end": 1604, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1610, + "end": 1858, + "name": "tag", + "source": 19, + "value": "31" + }, + { + "begin": 1610, + "end": 1858, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1692, + "end": 1693, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1702, + "end": 1815, + "name": "tag", + "source": 19, + "value": "76" + }, + { + "begin": 1702, + "end": 1815, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1716, + "end": 1722, + "name": "DUP4", + "source": 19 + }, + { + "begin": 1713, + "end": 1714, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1710, + "end": 1723, + "name": "LT", + "source": 19 + }, + { + "begin": 1702, + "end": 1815, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 1702, + "end": 1815, + "name": "PUSH [tag]", + "source": 19, + "value": "78" + }, + { + "begin": 1702, + "end": 1815, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 1801, + "end": 1802, + "name": "DUP1", + "source": 19 + }, + { + "begin": 1796, + "end": 1799, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1792, + "end": 1803, + "name": "ADD", + "source": 19 + }, + { + "begin": 1786, + "end": 1804, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 1782, + "end": 1783, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1777, + "end": 1780, + "name": "DUP5", + "source": 19 + }, + { + "begin": 1773, + "end": 1784, + "name": "ADD", + "source": 19 + }, + { + "begin": 1766, + "end": 1805, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 1738, + "end": 1740, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 1735, + "end": 1736, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1731, + "end": 1741, + "name": "ADD", + "source": 19 + }, + { + "begin": 1726, + "end": 1741, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1726, + "end": 1741, + "name": "POP", + "source": 19 + }, + { + "begin": 1702, + "end": 1815, + "name": "PUSH [tag]", + "source": 19, + "value": "76" + }, + { + "begin": 1702, + "end": 1815, + "name": "JUMP", + "source": 19 + }, + { + "begin": 1702, + "end": 1815, + "name": "tag", + "source": 19, + "value": "78" + }, + { + "begin": 1702, + "end": 1815, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1849, + "end": 1850, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1840, + "end": 1846, + "name": "DUP5", + "source": 19 + }, + { + "begin": 1835, + "end": 1838, + "name": "DUP5", + "source": 19 + }, + { + "begin": 1831, + "end": 1847, + "name": "ADD", + "source": 19 + }, + { + "begin": 1824, + "end": 1851, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 1672, + "end": 1858, + "name": "POP", + "source": 19 + }, + { + "begin": 1610, + "end": 1858, + "name": "POP", + "source": 19 + }, + { + "begin": 1610, + "end": 1858, + "name": "POP", + "source": 19 + }, + { + "begin": 1610, + "end": 1858, + "name": "POP", + "source": 19 + }, + { + "begin": 1610, + "end": 1858, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1864, + "end": 2298, + "name": "tag", + "source": 19, + "value": "32" + }, + { + "begin": 1864, + "end": 2298, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1953, + "end": 1958, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1978, + "end": 2044, + "name": "PUSH [tag]", + "source": 19, + "value": "80" + }, + { + "begin": 1994, + "end": 2043, + "name": "PUSH [tag]", + "source": 19, + "value": "81" + }, + { + "begin": 2036, + "end": 2042, + "name": "DUP5", + "source": 19 + }, + { + "begin": 1994, + "end": 2043, + "name": "PUSH [tag]", + "source": 19, + "value": "30" + }, + { + "begin": 1994, + "end": 2043, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1994, + "end": 2043, + "name": "tag", + "source": 19, + "value": "81" + }, + { + "begin": 1994, + "end": 2043, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1978, + "end": 2044, + "name": "PUSH [tag]", + "source": 19, + "value": "29" + }, + { + "begin": 1978, + "end": 2044, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1978, + "end": 2044, + "name": "tag", + "source": 19, + "value": "80" + }, + { + "begin": 1978, + "end": 2044, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1969, + "end": 2044, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1969, + "end": 2044, + "name": "POP", + "source": 19 + }, + { + "begin": 2067, + "end": 2073, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2060, + "end": 2065, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2053, + "end": 2074, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 2105, + "end": 2109, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 2098, + "end": 2103, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2094, + "end": 2110, + "name": "ADD", + "source": 19 + }, + { + "begin": 2143, + "end": 2146, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2134, + "end": 2140, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2129, + "end": 2132, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2125, + "end": 2141, + "name": "ADD", + "source": 19 + }, + { + "begin": 2122, + "end": 2147, + "name": "GT", + "source": 19 + }, + { + "begin": 2119, + "end": 2231, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 2119, + "end": 2231, + "name": "PUSH [tag]", + "source": 19, + "value": "82" + }, + { + "begin": 2119, + "end": 2231, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 2150, + "end": 2229, + "name": "PUSH [tag]", + "source": 19, + "value": "83" + }, + { + "begin": 2150, + "end": 2229, + "name": "PUSH [tag]", + "source": 19, + "value": "25" + }, + { + "begin": 2150, + "end": 2229, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2150, + "end": 2229, + "name": "tag", + "source": 19, + "value": "83" + }, + { + "begin": 2150, + "end": 2229, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2119, + "end": 2231, + "name": "tag", + "source": 19, + "value": "82" + }, + { + "begin": 2119, + "end": 2231, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2240, + "end": 2292, + "name": "PUSH [tag]", + "source": 19, + "value": "84" + }, + { + "begin": 2285, + "end": 2291, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2280, + "end": 2283, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2275, + "end": 2278, + "name": "DUP6", + "source": 19 + }, + { + "begin": 2240, + "end": 2292, + "name": "PUSH [tag]", + "source": 19, + "value": "31" + }, + { + "begin": 2240, + "end": 2292, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2240, + "end": 2292, + "name": "tag", + "source": 19, + "value": "84" + }, + { + "begin": 2240, + "end": 2292, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1959, + "end": 2298, + "name": "POP", + "source": 19 + }, + { + "begin": 1864, + "end": 2298, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 1864, + "end": 2298, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 1864, + "end": 2298, + "name": "POP", + "source": 19 + }, + { + "begin": 1864, + "end": 2298, + "name": "POP", + "source": 19 + }, + { + "begin": 1864, + "end": 2298, + "name": "POP", + "source": 19 + }, + { + "begin": 1864, + "end": 2298, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2318, + "end": 2673, + "name": "tag", + "source": 19, + "value": "33" + }, + { + "begin": 2318, + "end": 2673, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2385, + "end": 2390, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2434, + "end": 2437, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2427, + "end": 2431, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 2419, + "end": 2425, + "name": "DUP4", + "source": 19 + }, + { + "begin": 2415, + "end": 2432, + "name": "ADD", + "source": 19 + }, + { + "begin": 2411, + "end": 2438, + "name": "SLT", + "source": 19 + }, + { + "begin": 2401, + "end": 2523, + "name": "PUSH [tag]", + "source": 19, + "value": "86" + }, + { + "begin": 2401, + "end": 2523, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 2442, + "end": 2521, + "name": "PUSH [tag]", + "source": 19, + "value": "87" + }, + { + "begin": 2442, + "end": 2521, + "name": "PUSH [tag]", + "source": 19, + "value": "24" + }, + { + "begin": 2442, + "end": 2521, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2442, + "end": 2521, + "name": "tag", + "source": 19, + "value": "87" + }, + { + "begin": 2442, + "end": 2521, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2401, + "end": 2523, + "name": "tag", + "source": 19, + "value": "86" + }, + { + "begin": 2401, + "end": 2523, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2552, + "end": 2558, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2546, + "end": 2559, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 2577, + "end": 2667, + "name": "PUSH [tag]", + "source": 19, + "value": "88" + }, + { + "begin": 2663, + "end": 2666, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2655, + "end": 2661, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2648, + "end": 2652, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 2640, + "end": 2646, + "name": "DUP7", + "source": 19 + }, + { + "begin": 2636, + "end": 2653, + "name": "ADD", + "source": 19 + }, + { + "begin": 2577, + "end": 2667, + "name": "PUSH [tag]", + "source": 19, + "value": "32" + }, + { + "begin": 2577, + "end": 2667, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2577, + "end": 2667, + "name": "tag", + "source": 19, + "value": "88" + }, + { + "begin": 2577, + "end": 2667, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2568, + "end": 2667, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2568, + "end": 2667, + "name": "POP", + "source": 19 + }, + { + "begin": 2391, + "end": 2673, + "name": "POP", + "source": 19 + }, + { + "begin": 2318, + "end": 2673, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 2318, + "end": 2673, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2318, + "end": 2673, + "name": "POP", + "source": 19 + }, + { + "begin": 2318, + "end": 2673, + "name": "POP", + "source": 19 + }, + { + "begin": 2318, + "end": 2673, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2679, + "end": 3203, + "name": "tag", + "source": 19, + "value": "3" + }, + { + "begin": 2679, + "end": 3203, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2759, + "end": 2765, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2808, + "end": 2810, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 2796, + "end": 2805, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2787, + "end": 2794, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2783, + "end": 2806, + "name": "SUB", + "source": 19 + }, + { + "begin": 2779, + "end": 2811, + "name": "SLT", + "source": 19 + }, + { + "begin": 2776, + "end": 2895, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 2776, + "end": 2895, + "name": "PUSH [tag]", + "source": 19, + "value": "90" + }, + { + "begin": 2776, + "end": 2895, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 2814, + "end": 2893, + "name": "PUSH [tag]", + "source": 19, + "value": "91" + }, + { + "begin": 2814, + "end": 2893, + "name": "PUSH [tag]", + "source": 19, + "value": "22" + }, + { + "begin": 2814, + "end": 2893, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2814, + "end": 2893, + "name": "tag", + "source": 19, + "value": "91" + }, + { + "begin": 2814, + "end": 2893, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2776, + "end": 2895, + "name": "tag", + "source": 19, + "value": "90" + }, + { + "begin": 2776, + "end": 2895, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2955, + "end": 2956, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2944, + "end": 2953, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2940, + "end": 2957, + "name": "ADD", + "source": 19 + }, + { + "begin": 2934, + "end": 2958, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 2985, + "end": 3003, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 2977, + "end": 2983, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2974, + "end": 3004, + "name": "GT", + "source": 19 + }, + { + "begin": 2971, + "end": 3088, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 2971, + "end": 3088, + "name": "PUSH [tag]", + "source": 19, + "value": "92" + }, + { + "begin": 2971, + "end": 3088, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 3007, + "end": 3086, + "name": "PUSH [tag]", + "source": 19, + "value": "93" + }, + { + "begin": 3007, + "end": 3086, + "name": "PUSH [tag]", + "source": 19, + "value": "23" + }, + { + "begin": 3007, + "end": 3086, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3007, + "end": 3086, + "name": "tag", + "source": 19, + "value": "93" + }, + { + "begin": 3007, + "end": 3086, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2971, + "end": 3088, + "name": "tag", + "source": 19, + "value": "92" + }, + { + "begin": 2971, + "end": 3088, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3112, + "end": 3186, + "name": "PUSH [tag]", + "source": 19, + "value": "94" + }, + { + "begin": 3178, + "end": 3185, + "name": "DUP5", + "source": 19 + }, + { + "begin": 3169, + "end": 3175, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3158, + "end": 3167, + "name": "DUP6", + "source": 19 + }, + { + "begin": 3154, + "end": 3176, + "name": "ADD", + "source": 19 + }, + { + "begin": 3112, + "end": 3186, + "name": "PUSH [tag]", + "source": 19, + "value": "33" + }, + { + "begin": 3112, + "end": 3186, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3112, + "end": 3186, + "name": "tag", + "source": 19, + "value": "94" + }, + { + "begin": 3112, + "end": 3186, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3102, + "end": 3186, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3102, + "end": 3186, + "name": "POP", + "source": 19 + }, + { + "begin": 2905, + "end": 3196, + "name": "POP", + "source": 19 + }, + { + "begin": 2679, + "end": 3203, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 2679, + "end": 3203, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2679, + "end": 3203, + "name": "POP", + "source": 19 + }, + { + "begin": 2679, + "end": 3203, + "name": "POP", + "source": 19 + }, + { + "begin": 2679, + "end": 3203, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3209, + "end": 3308, + "name": "tag", + "source": 19, + "value": "34" + }, + { + "begin": 3209, + "end": 3308, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3261, + "end": 3267, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3295, + "end": 3300, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3289, + "end": 3301, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 3279, + "end": 3301, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3279, + "end": 3301, + "name": "POP", + "source": 19 + }, + { + "begin": 3209, + "end": 3308, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3209, + "end": 3308, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3209, + "end": 3308, + "name": "POP", + "source": 19 + }, + { + "begin": 3209, + "end": 3308, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3314, + "end": 3494, + "name": "tag", + "source": 19, + "value": "35" + }, + { + "begin": 3314, + "end": 3494, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3362, + "end": 3439, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3359, + "end": 3360, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3352, + "end": 3440, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 3459, + "end": 3463, + "name": "PUSH", + "source": 19, + "value": "22" + }, + { + "begin": 3456, + "end": 3457, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 3449, + "end": 3464, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 3483, + "end": 3487, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 3480, + "end": 3481, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3473, + "end": 3488, + "name": "REVERT", + "source": 19 + }, + { + "begin": 3500, + "end": 3820, + "name": "tag", + "source": 19, + "value": "36" + }, + { + "begin": 3500, + "end": 3820, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3544, + "end": 3550, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3581, + "end": 3582, + "name": "PUSH", + "source": 19, + "value": "2" + }, + { + "begin": 3575, + "end": 3579, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3571, + "end": 3583, + "name": "DIV", + "source": 19 + }, + { + "begin": 3561, + "end": 3583, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3561, + "end": 3583, + "name": "POP", + "source": 19 + }, + { + "begin": 3628, + "end": 3629, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 3622, + "end": 3626, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3618, + "end": 3630, + "name": "AND", + "source": 19 + }, + { + "begin": 3649, + "end": 3667, + "name": "DUP1", + "source": 19 + }, + { + "begin": 3639, + "end": 3720, + "name": "PUSH [tag]", + "source": 19, + "value": "98" + }, + { + "begin": 3639, + "end": 3720, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 3705, + "end": 3709, + "name": "PUSH", + "source": 19, + "value": "7F" + }, + { + "begin": 3697, + "end": 3703, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3693, + "end": 3710, + "name": "AND", + "source": 19 + }, + { + "begin": 3683, + "end": 3710, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3683, + "end": 3710, + "name": "POP", + "source": 19 + }, + { + "begin": 3639, + "end": 3720, + "name": "tag", + "source": 19, + "value": "98" + }, + { + "begin": 3639, + "end": 3720, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3767, + "end": 3769, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 3759, + "end": 3765, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3756, + "end": 3770, + "name": "LT", + "source": 19 + }, + { + "begin": 3736, + "end": 3754, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3733, + "end": 3771, + "name": "SUB", + "source": 19 + }, + { + "begin": 3730, + "end": 3814, + "name": "PUSH [tag]", + "source": 19, + "value": "99" + }, + { + "begin": 3730, + "end": 3814, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 3786, + "end": 3804, + "name": "PUSH [tag]", + "source": 19, + "value": "100" + }, + { + "begin": 3786, + "end": 3804, + "name": "PUSH [tag]", + "source": 19, + "value": "35" + }, + { + "begin": 3786, + "end": 3804, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3786, + "end": 3804, + "name": "tag", + "source": 19, + "value": "100" + }, + { + "begin": 3786, + "end": 3804, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3730, + "end": 3814, + "name": "tag", + "source": 19, + "value": "99" + }, + { + "begin": 3730, + "end": 3814, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3551, + "end": 3820, + "name": "POP", + "source": 19 + }, + { + "begin": 3500, + "end": 3820, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3500, + "end": 3820, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3500, + "end": 3820, + "name": "POP", + "source": 19 + }, + { + "begin": 3500, + "end": 3820, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3826, + "end": 3967, + "name": "tag", + "source": 19, + "value": "37" + }, + { + "begin": 3826, + "end": 3967, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3875, + "end": 3879, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3898, + "end": 3901, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3890, + "end": 3901, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3890, + "end": 3901, + "name": "POP", + "source": 19 + }, + { + "begin": 3921, + "end": 3924, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3918, + "end": 3919, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3911, + "end": 3925, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 3955, + "end": 3959, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 3952, + "end": 3953, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3942, + "end": 3960, + "name": "KECCAK256", + "source": 19 + }, + { + "begin": 3934, + "end": 3960, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3934, + "end": 3960, + "name": "POP", + "source": 19 + }, + { + "begin": 3826, + "end": 3967, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3826, + "end": 3967, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3826, + "end": 3967, + "name": "POP", + "source": 19 + }, + { + "begin": 3826, + "end": 3967, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3973, + "end": 4066, + "name": "tag", + "source": 19, + "value": "38" + }, + { + "begin": 3973, + "end": 4066, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4010, + "end": 4016, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4057, + "end": 4059, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 4052, + "end": 4054, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 4045, + "end": 4050, + "name": "DUP4", + "source": 19 + }, + { + "begin": 4041, + "end": 4055, + "name": "ADD", + "source": 19 + }, + { + "begin": 4037, + "end": 4060, + "name": "DIV", + "source": 19 + }, + { + "begin": 4027, + "end": 4060, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4027, + "end": 4060, + "name": "POP", + "source": 19 + }, + { + "begin": 3973, + "end": 4066, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3973, + "end": 4066, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3973, + "end": 4066, + "name": "POP", + "source": 19 + }, + { + "begin": 3973, + "end": 4066, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4072, + "end": 4179, + "name": "tag", + "source": 19, + "value": "39" + }, + { + "begin": 4072, + "end": 4179, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4116, + "end": 4124, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4166, + "end": 4171, + "name": "DUP3", + "source": 19 + }, + { + "begin": 4160, + "end": 4164, + "name": "DUP3", + "source": 19 + }, + { + "begin": 4156, + "end": 4172, + "name": "SHL", + "source": 19 + }, + { + "begin": 4135, + "end": 4172, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4135, + "end": 4172, + "name": "POP", + "source": 19 + }, + { + "begin": 4072, + "end": 4179, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 4072, + "end": 4179, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 4072, + "end": 4179, + "name": "POP", + "source": 19 + }, + { + "begin": 4072, + "end": 4179, + "name": "POP", + "source": 19 + }, + { + "begin": 4072, + "end": 4179, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4185, + "end": 4578, + "name": "tag", + "source": 19, + "value": "40" + }, + { + "begin": 4185, + "end": 4578, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4254, + "end": 4260, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4304, + "end": 4305, + "name": "PUSH", + "source": 19, + "value": "8" + }, + { + "begin": 4292, + "end": 4302, + "name": "DUP4", + "source": 19 + }, + { + "begin": 4288, + "end": 4306, + "name": "MUL", + "source": 19 + }, + { + "begin": 4327, + "end": 4424, + "name": "PUSH [tag]", + "source": 19, + "value": "105" + }, + { + "begin": 4357, + "end": 4423, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4346, + "end": 4355, + "name": "DUP3", + "source": 19 + }, + { + "begin": 4327, + "end": 4424, + "name": "PUSH [tag]", + "source": 19, + "value": "39" + }, + { + "begin": 4327, + "end": 4424, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4327, + "end": 4424, + "name": "tag", + "source": 19, + "value": "105" + }, + { + "begin": 4327, + "end": 4424, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4445, + "end": 4484, + "name": "PUSH [tag]", + "source": 19, + "value": "106" + }, + { + "begin": 4475, + "end": 4483, + "name": "DUP7", + "source": 19 + }, + { + "begin": 4464, + "end": 4473, + "name": "DUP4", + "source": 19 + }, + { + "begin": 4445, + "end": 4484, + "name": "PUSH [tag]", + "source": 19, + "value": "39" + }, + { + "begin": 4445, + "end": 4484, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4445, + "end": 4484, + "name": "tag", + "source": 19, + "value": "106" + }, + { + "begin": 4445, + "end": 4484, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4433, + "end": 4484, + "name": "SWAP6", + "source": 19 + }, + { + "begin": 4433, + "end": 4484, + "name": "POP", + "source": 19 + }, + { + "begin": 4517, + "end": 4521, + "name": "DUP1", + "source": 19 + }, + { + "begin": 4513, + "end": 4522, + "name": "NOT", + "source": 19 + }, + { + "begin": 4506, + "end": 4511, + "name": "DUP5", + "source": 19 + }, + { + "begin": 4502, + "end": 4523, + "name": "AND", + "source": 19 + }, + { + "begin": 4493, + "end": 4523, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 4493, + "end": 4523, + "name": "POP", + "source": 19 + }, + { + "begin": 4566, + "end": 4570, + "name": "DUP1", + "source": 19 + }, + { + "begin": 4556, + "end": 4564, + "name": "DUP7", + "source": 19 + }, + { + "begin": 4552, + "end": 4571, + "name": "AND", + "source": 19 + }, + { + "begin": 4545, + "end": 4550, + "name": "DUP5", + "source": 19 + }, + { + "begin": 4542, + "end": 4572, + "name": "OR", + "source": 19 + }, + { + "begin": 4532, + "end": 4572, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 4532, + "end": 4572, + "name": "POP", + "source": 19 + }, + { + "begin": 4261, + "end": 4578, + "name": "POP", + "source": 19 + }, + { + "begin": 4261, + "end": 4578, + "name": "POP", + "source": 19 + }, + { + "begin": 4185, + "end": 4578, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 4185, + "end": 4578, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 4185, + "end": 4578, + "name": "POP", + "source": 19 + }, + { + "begin": 4185, + "end": 4578, + "name": "POP", + "source": 19 + }, + { + "begin": 4185, + "end": 4578, + "name": "POP", + "source": 19 + }, + { + "begin": 4185, + "end": 4578, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4584, + "end": 4661, + "name": "tag", + "source": 19, + "value": "41" + }, + { + "begin": 4584, + "end": 4661, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4621, + "end": 4628, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4650, + "end": 4655, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4639, + "end": 4655, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4639, + "end": 4655, + "name": "POP", + "source": 19 + }, + { + "begin": 4584, + "end": 4661, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 4584, + "end": 4661, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4584, + "end": 4661, + "name": "POP", + "source": 19 + }, + { + "begin": 4584, + "end": 4661, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4667, + "end": 4727, + "name": "tag", + "source": 19, + "value": "42" + }, + { + "begin": 4667, + "end": 4727, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4695, + "end": 4698, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4716, + "end": 4721, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4709, + "end": 4721, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4709, + "end": 4721, + "name": "POP", + "source": 19 + }, + { + "begin": 4667, + "end": 4727, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 4667, + "end": 4727, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4667, + "end": 4727, + "name": "POP", + "source": 19 + }, + { + "begin": 4667, + "end": 4727, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4733, + "end": 4875, + "name": "tag", + "source": 19, + "value": "43" + }, + { + "begin": 4733, + "end": 4875, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4783, + "end": 4792, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4816, + "end": 4869, + "name": "PUSH [tag]", + "source": 19, + "value": "110" + }, + { + "begin": 4834, + "end": 4868, + "name": "PUSH [tag]", + "source": 19, + "value": "111" + }, + { + "begin": 4843, + "end": 4867, + "name": "PUSH [tag]", + "source": 19, + "value": "112" + }, + { + "begin": 4861, + "end": 4866, + "name": "DUP5", + "source": 19 + }, + { + "begin": 4843, + "end": 4867, + "name": "PUSH [tag]", + "source": 19, + "value": "41" + }, + { + "begin": 4843, + "end": 4867, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4843, + "end": 4867, + "name": "tag", + "source": 19, + "value": "112" + }, + { + "begin": 4843, + "end": 4867, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4834, + "end": 4868, + "name": "PUSH [tag]", + "source": 19, + "value": "42" + }, + { + "begin": 4834, + "end": 4868, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4834, + "end": 4868, + "name": "tag", + "source": 19, + "value": "111" + }, + { + "begin": 4834, + "end": 4868, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4816, + "end": 4869, + "name": "PUSH [tag]", + "source": 19, + "value": "41" + }, + { + "begin": 4816, + "end": 4869, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4816, + "end": 4869, + "name": "tag", + "source": 19, + "value": "110" + }, + { + "begin": 4816, + "end": 4869, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4803, + "end": 4869, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4803, + "end": 4869, + "name": "POP", + "source": 19 + }, + { + "begin": 4733, + "end": 4875, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 4733, + "end": 4875, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4733, + "end": 4875, + "name": "POP", + "source": 19 + }, + { + "begin": 4733, + "end": 4875, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4881, + "end": 4956, + "name": "tag", + "source": 19, + "value": "44" + }, + { + "begin": 4881, + "end": 4956, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4924, + "end": 4927, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4945, + "end": 4950, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4938, + "end": 4950, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4938, + "end": 4950, + "name": "POP", + "source": 19 + }, + { + "begin": 4881, + "end": 4956, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 4881, + "end": 4956, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4881, + "end": 4956, + "name": "POP", + "source": 19 + }, + { + "begin": 4881, + "end": 4956, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4962, + "end": 5231, + "name": "tag", + "source": 19, + "value": "45" + }, + { + "begin": 4962, + "end": 5231, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5072, + "end": 5111, + "name": "PUSH [tag]", + "source": 19, + "value": "115" + }, + { + "begin": 5103, + "end": 5110, + "name": "DUP4", + "source": 19 + }, + { + "begin": 5072, + "end": 5111, + "name": "PUSH [tag]", + "source": 19, + "value": "43" + }, + { + "begin": 5072, + "end": 5111, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5072, + "end": 5111, + "name": "tag", + "source": 19, + "value": "115" + }, + { + "begin": 5072, + "end": 5111, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5133, + "end": 5224, + "name": "PUSH [tag]", + "source": 19, + "value": "116" + }, + { + "begin": 5182, + "end": 5223, + "name": "PUSH [tag]", + "source": 19, + "value": "117" + }, + { + "begin": 5206, + "end": 5222, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5182, + "end": 5223, + "name": "PUSH [tag]", + "source": 19, + "value": "44" + }, + { + "begin": 5182, + "end": 5223, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5182, + "end": 5223, + "name": "tag", + "source": 19, + "value": "117" + }, + { + "begin": 5182, + "end": 5223, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5174, + "end": 5180, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5167, + "end": 5171, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5161, + "end": 5172, + "name": "SLOAD", + "source": 19 + }, + { + "begin": 5133, + "end": 5224, + "name": "PUSH [tag]", + "source": 19, + "value": "40" + }, + { + "begin": 5133, + "end": 5224, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5133, + "end": 5224, + "name": "tag", + "source": 19, + "value": "116" + }, + { + "begin": 5133, + "end": 5224, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5127, + "end": 5131, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5120, + "end": 5225, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 5038, + "end": 5231, + "name": "POP", + "source": 19 + }, + { + "begin": 4962, + "end": 5231, + "name": "POP", + "source": 19 + }, + { + "begin": 4962, + "end": 5231, + "name": "POP", + "source": 19 + }, + { + "begin": 4962, + "end": 5231, + "name": "POP", + "source": 19 + }, + { + "begin": 4962, + "end": 5231, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5237, + "end": 5310, + "name": "tag", + "source": 19, + "value": "46" + }, + { + "begin": 5237, + "end": 5310, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5282, + "end": 5285, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5237, + "end": 5310, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 5237, + "end": 5310, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5316, + "end": 5505, + "name": "tag", + "source": 19, + "value": "47" + }, + { + "begin": 5316, + "end": 5505, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5393, + "end": 5425, + "name": "PUSH [tag]", + "source": 19, + "value": "120" + }, + { + "begin": 5393, + "end": 5425, + "name": "PUSH [tag]", + "source": 19, + "value": "46" + }, + { + "begin": 5393, + "end": 5425, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5393, + "end": 5425, + "name": "tag", + "source": 19, + "value": "120" + }, + { + "begin": 5393, + "end": 5425, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5434, + "end": 5499, + "name": "PUSH [tag]", + "source": 19, + "value": "121" + }, + { + "begin": 5492, + "end": 5498, + "name": "DUP2", + "source": 19 + }, + { + "begin": 5484, + "end": 5490, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5478, + "end": 5482, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5434, + "end": 5499, + "name": "PUSH [tag]", + "source": 19, + "value": "45" + }, + { + "begin": 5434, + "end": 5499, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5434, + "end": 5499, + "name": "tag", + "source": 19, + "value": "121" + }, + { + "begin": 5434, + "end": 5499, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5369, + "end": 5505, + "name": "POP", + "source": 19 + }, + { + "begin": 5316, + "end": 5505, + "name": "POP", + "source": 19 + }, + { + "begin": 5316, + "end": 5505, + "name": "POP", + "source": 19 + }, + { + "begin": 5316, + "end": 5505, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5511, + "end": 5697, + "name": "tag", + "source": 19, + "value": "48" + }, + { + "begin": 5511, + "end": 5697, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5571, + "end": 5691, + "name": "tag", + "source": 19, + "value": "123" + }, + { + "begin": 5571, + "end": 5691, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5588, + "end": 5591, + "name": "DUP2", + "source": 19 + }, + { + "begin": 5581, + "end": 5586, + "name": "DUP2", + "source": 19 + }, + { + "begin": 5578, + "end": 5592, + "name": "LT", + "source": 19 + }, + { + "begin": 5571, + "end": 5691, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 5571, + "end": 5691, + "name": "PUSH [tag]", + "source": 19, + "value": "125" + }, + { + "begin": 5571, + "end": 5691, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 5642, + "end": 5681, + "name": "PUSH [tag]", + "source": 19, + "value": "126" + }, + { + "begin": 5679, + "end": 5680, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5672, + "end": 5677, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5642, + "end": 5681, + "name": "PUSH [tag]", + "source": 19, + "value": "47" + }, + { + "begin": 5642, + "end": 5681, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5642, + "end": 5681, + "name": "tag", + "source": 19, + "value": "126" + }, + { + "begin": 5642, + "end": 5681, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5615, + "end": 5616, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 5608, + "end": 5613, + "name": "DUP2", + "source": 19 + }, + { + "begin": 5604, + "end": 5617, + "name": "ADD", + "source": 19 + }, + { + "begin": 5595, + "end": 5617, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 5595, + "end": 5617, + "name": "POP", + "source": 19 + }, + { + "begin": 5571, + "end": 5691, + "name": "PUSH [tag]", + "source": 19, + "value": "123" + }, + { + "begin": 5571, + "end": 5691, + "name": "JUMP", + "source": 19 + }, + { + "begin": 5571, + "end": 5691, + "name": "tag", + "source": 19, + "value": "125" + }, + { + "begin": 5571, + "end": 5691, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5511, + "end": 5697, + "name": "POP", + "source": 19 + }, + { + "begin": 5511, + "end": 5697, + "name": "POP", + "source": 19 + }, + { + "begin": 5511, + "end": 5697, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5703, + "end": 6246, + "name": "tag", + "source": 19, + "value": "49" + }, + { + "begin": 5703, + "end": 6246, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5804, + "end": 5806, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 5799, + "end": 5802, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5796, + "end": 5807, + "name": "GT", + "source": 19 + }, + { + "begin": 5793, + "end": 6239, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 5793, + "end": 6239, + "name": "PUSH [tag]", + "source": 19, + "value": "128" + }, + { + "begin": 5793, + "end": 6239, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 5838, + "end": 5876, + "name": "PUSH [tag]", + "source": 19, + "value": "129" + }, + { + "begin": 5870, + "end": 5875, + "name": "DUP2", + "source": 19 + }, + { + "begin": 5838, + "end": 5876, + "name": "PUSH [tag]", + "source": 19, + "value": "37" + }, + { + "begin": 5838, + "end": 5876, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5838, + "end": 5876, + "name": "tag", + "source": 19, + "value": "129" + }, + { + "begin": 5838, + "end": 5876, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5922, + "end": 5951, + "name": "PUSH [tag]", + "source": 19, + "value": "130" + }, + { + "begin": 5940, + "end": 5950, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5922, + "end": 5951, + "name": "PUSH [tag]", + "source": 19, + "value": "38" + }, + { + "begin": 5922, + "end": 5951, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5922, + "end": 5951, + "name": "tag", + "source": 19, + "value": "130" + }, + { + "begin": 5922, + "end": 5951, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5912, + "end": 5920, + "name": "DUP2", + "source": 19 + }, + { + "begin": 5908, + "end": 5952, + "name": "ADD", + "source": 19 + }, + { + "begin": 6105, + "end": 6107, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 6093, + "end": 6103, + "name": "DUP6", + "source": 19 + }, + { + "begin": 6090, + "end": 6108, + "name": "LT", + "source": 19 + }, + { + "begin": 6087, + "end": 6136, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 6087, + "end": 6136, + "name": "PUSH [tag]", + "source": 19, + "value": "131" + }, + { + "begin": 6087, + "end": 6136, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 6126, + "end": 6134, + "name": "DUP2", + "source": 19 + }, + { + "begin": 6111, + "end": 6134, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 6111, + "end": 6134, + "name": "POP", + "source": 19 + }, + { + "begin": 6087, + "end": 6136, + "name": "tag", + "source": 19, + "value": "131" + }, + { + "begin": 6087, + "end": 6136, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6149, + "end": 6229, + "name": "PUSH [tag]", + "source": 19, + "value": "132" + }, + { + "begin": 6205, + "end": 6227, + "name": "PUSH [tag]", + "source": 19, + "value": "133" + }, + { + "begin": 6223, + "end": 6226, + "name": "DUP6", + "source": 19 + }, + { + "begin": 6205, + "end": 6227, + "name": "PUSH [tag]", + "source": 19, + "value": "38" + }, + { + "begin": 6205, + "end": 6227, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6205, + "end": 6227, + "name": "tag", + "source": 19, + "value": "133" + }, + { + "begin": 6205, + "end": 6227, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6195, + "end": 6203, + "name": "DUP4", + "source": 19 + }, + { + "begin": 6191, + "end": 6228, + "name": "ADD", + "source": 19 + }, + { + "begin": 6178, + "end": 6189, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6149, + "end": 6229, + "name": "PUSH [tag]", + "source": 19, + "value": "48" + }, + { + "begin": 6149, + "end": 6229, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6149, + "end": 6229, + "name": "tag", + "source": 19, + "value": "132" + }, + { + "begin": 6149, + "end": 6229, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5808, + "end": 6239, + "name": "POP", + "source": 19 + }, + { + "begin": 5808, + "end": 6239, + "name": "POP", + "source": 19 + }, + { + "begin": 5793, + "end": 6239, + "name": "tag", + "source": 19, + "value": "128" + }, + { + "begin": 5793, + "end": 6239, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5703, + "end": 6246, + "name": "POP", + "source": 19 + }, + { + "begin": 5703, + "end": 6246, + "name": "POP", + "source": 19 + }, + { + "begin": 5703, + "end": 6246, + "name": "POP", + "source": 19 + }, + { + "begin": 5703, + "end": 6246, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6252, + "end": 6369, + "name": "tag", + "source": 19, + "value": "50" + }, + { + "begin": 6252, + "end": 6369, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6306, + "end": 6314, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6356, + "end": 6361, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6350, + "end": 6354, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6346, + "end": 6362, + "name": "SHR", + "source": 19 + }, + { + "begin": 6325, + "end": 6362, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 6325, + "end": 6362, + "name": "POP", + "source": 19 + }, + { + "begin": 6252, + "end": 6369, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 6252, + "end": 6369, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 6252, + "end": 6369, + "name": "POP", + "source": 19 + }, + { + "begin": 6252, + "end": 6369, + "name": "POP", + "source": 19 + }, + { + "begin": 6252, + "end": 6369, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6375, + "end": 6544, + "name": "tag", + "source": 19, + "value": "51" + }, + { + "begin": 6375, + "end": 6544, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6419, + "end": 6425, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6452, + "end": 6503, + "name": "PUSH [tag]", + "source": 19, + "value": "136" + }, + { + "begin": 6500, + "end": 6501, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6496, + "end": 6502, + "name": "NOT", + "source": 19 + }, + { + "begin": 6488, + "end": 6493, + "name": "DUP5", + "source": 19 + }, + { + "begin": 6485, + "end": 6486, + "name": "PUSH", + "source": 19, + "value": "8" + }, + { + "begin": 6481, + "end": 6494, + "name": "MUL", + "source": 19 + }, + { + "begin": 6452, + "end": 6503, + "name": "PUSH [tag]", + "source": 19, + "value": "50" + }, + { + "begin": 6452, + "end": 6503, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6452, + "end": 6503, + "name": "tag", + "source": 19, + "value": "136" + }, + { + "begin": 6452, + "end": 6503, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6448, + "end": 6504, + "name": "NOT", + "source": 19 + }, + { + "begin": 6533, + "end": 6537, + "name": "DUP1", + "source": 19 + }, + { + "begin": 6527, + "end": 6531, + "name": "DUP4", + "source": 19 + }, + { + "begin": 6523, + "end": 6538, + "name": "AND", + "source": 19 + }, + { + "begin": 6513, + "end": 6538, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 6513, + "end": 6538, + "name": "POP", + "source": 19 + }, + { + "begin": 6426, + "end": 6544, + "name": "POP", + "source": 19 + }, + { + "begin": 6375, + "end": 6544, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 6375, + "end": 6544, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 6375, + "end": 6544, + "name": "POP", + "source": 19 + }, + { + "begin": 6375, + "end": 6544, + "name": "POP", + "source": 19 + }, + { + "begin": 6375, + "end": 6544, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6549, + "end": 6844, + "name": "tag", + "source": 19, + "value": "52" + }, + { + "begin": 6549, + "end": 6844, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6625, + "end": 6629, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6771, + "end": 6800, + "name": "PUSH [tag]", + "source": 19, + "value": "138" + }, + { + "begin": 6796, + "end": 6799, + "name": "DUP4", + "source": 19 + }, + { + "begin": 6790, + "end": 6794, + "name": "DUP4", + "source": 19 + }, + { + "begin": 6771, + "end": 6800, + "name": "PUSH [tag]", + "source": 19, + "value": "51" + }, + { + "begin": 6771, + "end": 6800, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6771, + "end": 6800, + "name": "tag", + "source": 19, + "value": "138" + }, + { + "begin": 6771, + "end": 6800, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6763, + "end": 6800, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 6763, + "end": 6800, + "name": "POP", + "source": 19 + }, + { + "begin": 6833, + "end": 6836, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6830, + "end": 6831, + "name": "PUSH", + "source": 19, + "value": "2" + }, + { + "begin": 6826, + "end": 6837, + "name": "MUL", + "source": 19 + }, + { + "begin": 6820, + "end": 6824, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6817, + "end": 6838, + "name": "OR", + "source": 19 + }, + { + "begin": 6809, + "end": 6838, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 6809, + "end": 6838, + "name": "POP", + "source": 19 + }, + { + "begin": 6549, + "end": 6844, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 6549, + "end": 6844, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 6549, + "end": 6844, + "name": "POP", + "source": 19 + }, + { + "begin": 6549, + "end": 6844, + "name": "POP", + "source": 19 + }, + { + "begin": 6549, + "end": 6844, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6849, + "end": 8244, + "name": "tag", + "source": 19, + "value": "9" + }, + { + "begin": 6849, + "end": 8244, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6966, + "end": 7003, + "name": "PUSH [tag]", + "source": 19, + "value": "140" + }, + { + "begin": 6999, + "end": 7002, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6966, + "end": 7003, + "name": "PUSH [tag]", + "source": 19, + "value": "34" + }, + { + "begin": 6966, + "end": 7003, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6966, + "end": 7003, + "name": "tag", + "source": 19, + "value": "140" + }, + { + "begin": 6966, + "end": 7003, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7068, + "end": 7086, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 7060, + "end": 7066, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7057, + "end": 7087, + "name": "GT", + "source": 19 + }, + { + "begin": 7054, + "end": 7110, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 7054, + "end": 7110, + "name": "PUSH [tag]", + "source": 19, + "value": "141" + }, + { + "begin": 7054, + "end": 7110, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 7090, + "end": 7108, + "name": "PUSH [tag]", + "source": 19, + "value": "142" + }, + { + "begin": 7090, + "end": 7108, + "name": "PUSH [tag]", + "source": 19, + "value": "27" + }, + { + "begin": 7090, + "end": 7108, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7090, + "end": 7108, + "name": "tag", + "source": 19, + "value": "142" + }, + { + "begin": 7090, + "end": 7108, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7054, + "end": 7110, + "name": "tag", + "source": 19, + "value": "141" + }, + { + "begin": 7054, + "end": 7110, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7134, + "end": 7172, + "name": "PUSH [tag]", + "source": 19, + "value": "143" + }, + { + "begin": 7166, + "end": 7170, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7160, + "end": 7171, + "name": "SLOAD", + "source": 19 + }, + { + "begin": 7134, + "end": 7172, + "name": "PUSH [tag]", + "source": 19, + "value": "36" + }, + { + "begin": 7134, + "end": 7172, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7134, + "end": 7172, + "name": "tag", + "source": 19, + "value": "143" + }, + { + "begin": 7134, + "end": 7172, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7219, + "end": 7286, + "name": "PUSH [tag]", + "source": 19, + "value": "144" + }, + { + "begin": 7279, + "end": 7285, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7271, + "end": 7277, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7265, + "end": 7269, + "name": "DUP6", + "source": 19 + }, + { + "begin": 7219, + "end": 7286, + "name": "PUSH [tag]", + "source": 19, + "value": "49" + }, + { + "begin": 7219, + "end": 7286, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7219, + "end": 7286, + "name": "tag", + "source": 19, + "value": "144" + }, + { + "begin": 7219, + "end": 7286, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7313, + "end": 7314, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 7337, + "end": 7341, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 7324, + "end": 7341, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7324, + "end": 7341, + "name": "POP", + "source": 19 + }, + { + "begin": 7369, + "end": 7371, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 7361, + "end": 7367, + "name": "DUP4", + "source": 19 + }, + { + "begin": 7358, + "end": 7372, + "name": "GT", + "source": 19 + }, + { + "begin": 7386, + "end": 7387, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 7381, + "end": 7999, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7381, + "end": 7999, + "name": "EQ", + "source": 19 + }, + { + "begin": 7381, + "end": 7999, + "name": "PUSH [tag]", + "source": 19, + "value": "146" + }, + { + "begin": 7381, + "end": 7999, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 8043, + "end": 8044, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8060, + "end": 8066, + "name": "DUP5", + "source": 19 + }, + { + "begin": 8057, + "end": 8134, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 8057, + "end": 8134, + "name": "PUSH [tag]", + "source": 19, + "value": "147" + }, + { + "begin": 8057, + "end": 8134, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 8109, + "end": 8118, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8104, + "end": 8107, + "name": "DUP8", + "source": 19 + }, + { + "begin": 8100, + "end": 8119, + "name": "ADD", + "source": 19 + }, + { + "begin": 8094, + "end": 8120, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 8085, + "end": 8120, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 8085, + "end": 8120, + "name": "POP", + "source": 19 + }, + { + "begin": 8057, + "end": 8134, + "name": "tag", + "source": 19, + "value": "147" + }, + { + "begin": 8057, + "end": 8134, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8160, + "end": 8227, + "name": "PUSH [tag]", + "source": 19, + "value": "148" + }, + { + "begin": 8220, + "end": 8226, + "name": "DUP6", + "source": 19 + }, + { + "begin": 8213, + "end": 8218, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8160, + "end": 8227, + "name": "PUSH [tag]", + "source": 19, + "value": "52" + }, + { + "begin": 8160, + "end": 8227, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8160, + "end": 8227, + "name": "tag", + "source": 19, + "value": "148" + }, + { + "begin": 8160, + "end": 8227, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8154, + "end": 8158, + "name": "DUP7", + "source": 19 + }, + { + "begin": 8147, + "end": 8228, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 8016, + "end": 8238, + "name": "POP", + "source": 19 + }, + { + "begin": 7351, + "end": 8238, + "name": "PUSH [tag]", + "source": 19, + "value": "145" + }, + { + "begin": 7351, + "end": 8238, + "name": "JUMP", + "source": 19 + }, + { + "begin": 7381, + "end": 7999, + "name": "tag", + "source": 19, + "value": "146" + }, + { + "begin": 7381, + "end": 7999, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7433, + "end": 7437, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 7429, + "end": 7438, + "name": "NOT", + "source": 19 + }, + { + "begin": 7421, + "end": 7427, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7417, + "end": 7439, + "name": "AND", + "source": 19 + }, + { + "begin": 7467, + "end": 7504, + "name": "PUSH [tag]", + "source": 19, + "value": "149" + }, + { + "begin": 7499, + "end": 7503, + "name": "DUP7", + "source": 19 + }, + { + "begin": 7467, + "end": 7504, + "name": "PUSH [tag]", + "source": 19, + "value": "37" + }, + { + "begin": 7467, + "end": 7504, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7467, + "end": 7504, + "name": "tag", + "source": 19, + "value": "149" + }, + { + "begin": 7467, + "end": 7504, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7526, + "end": 7527, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 7540, + "end": 7748, + "name": "tag", + "source": 19, + "value": "150" + }, + { + "begin": 7540, + "end": 7748, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7554, + "end": 7561, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7551, + "end": 7552, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7548, + "end": 7562, + "name": "LT", + "source": 19 + }, + { + "begin": 7540, + "end": 7748, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 7540, + "end": 7748, + "name": "PUSH [tag]", + "source": 19, + "value": "152" + }, + { + "begin": 7540, + "end": 7748, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 7633, + "end": 7642, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7628, + "end": 7631, + "name": "DUP10", + "source": 19 + }, + { + "begin": 7624, + "end": 7643, + "name": "ADD", + "source": 19 + }, + { + "begin": 7618, + "end": 7644, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 7610, + "end": 7616, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7603, + "end": 7645, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 7684, + "end": 7685, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 7676, + "end": 7682, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7672, + "end": 7686, + "name": "ADD", + "source": 19 + }, + { + "begin": 7662, + "end": 7686, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 7662, + "end": 7686, + "name": "POP", + "source": 19 + }, + { + "begin": 7731, + "end": 7733, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 7720, + "end": 7729, + "name": "DUP6", + "source": 19 + }, + { + "begin": 7716, + "end": 7734, + "name": "ADD", + "source": 19 + }, + { + "begin": 7703, + "end": 7734, + "name": "SWAP5", + "source": 19 + }, + { + "begin": 7703, + "end": 7734, + "name": "POP", + "source": 19 + }, + { + "begin": 7577, + "end": 7581, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 7574, + "end": 7575, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7570, + "end": 7582, + "name": "ADD", + "source": 19 + }, + { + "begin": 7565, + "end": 7582, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7565, + "end": 7582, + "name": "POP", + "source": 19 + }, + { + "begin": 7540, + "end": 7748, + "name": "PUSH [tag]", + "source": 19, + "value": "150" + }, + { + "begin": 7540, + "end": 7748, + "name": "JUMP", + "source": 19 + }, + { + "begin": 7540, + "end": 7748, + "name": "tag", + "source": 19, + "value": "152" + }, + { + "begin": 7540, + "end": 7748, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7776, + "end": 7782, + "name": "DUP7", + "source": 19 + }, + { + "begin": 7767, + "end": 7774, + "name": "DUP4", + "source": 19 + }, + { + "begin": 7764, + "end": 7783, + "name": "LT", + "source": 19 + }, + { + "begin": 7761, + "end": 7940, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 7761, + "end": 7940, + "name": "PUSH [tag]", + "source": 19, + "value": "153" + }, + { + "begin": 7761, + "end": 7940, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 7834, + "end": 7843, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7829, + "end": 7832, + "name": "DUP10", + "source": 19 + }, + { + "begin": 7825, + "end": 7844, + "name": "ADD", + "source": 19 + }, + { + "begin": 7819, + "end": 7845, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 7877, + "end": 7925, + "name": "PUSH [tag]", + "source": 19, + "value": "154" + }, + { + "begin": 7919, + "end": 7923, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 7911, + "end": 7917, + "name": "DUP10", + "source": 19 + }, + { + "begin": 7907, + "end": 7924, + "name": "AND", + "source": 19 + }, + { + "begin": 7896, + "end": 7905, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7877, + "end": 7925, + "name": "PUSH [tag]", + "source": 19, + "value": "51" + }, + { + "begin": 7877, + "end": 7925, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7877, + "end": 7925, + "name": "tag", + "source": 19, + "value": "154" + }, + { + "begin": 7877, + "end": 7925, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7869, + "end": 7875, + "name": "DUP4", + "source": 19 + }, + { + "begin": 7862, + "end": 7926, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 7784, + "end": 7940, + "name": "POP", + "source": 19 + }, + { + "begin": 7761, + "end": 7940, + "name": "tag", + "source": 19, + "value": "153" + }, + { + "begin": 7761, + "end": 7940, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7986, + "end": 7987, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 7982, + "end": 7983, + "name": "PUSH", + "source": 19, + "value": "2" + }, + { + "begin": 7974, + "end": 7980, + "name": "DUP9", + "source": 19 + }, + { + "begin": 7970, + "end": 7984, + "name": "MUL", + "source": 19 + }, + { + "begin": 7966, + "end": 7988, + "name": "ADD", + "source": 19 + }, + { + "begin": 7960, + "end": 7964, + "name": "DUP9", + "source": 19 + }, + { + "begin": 7953, + "end": 7989, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 7388, + "end": 7999, + "name": "POP", + "source": 19 + }, + { + "begin": 7388, + "end": 7999, + "name": "POP", + "source": 19 + }, + { + "begin": 7388, + "end": 7999, + "name": "POP", + "source": 19 + }, + { + "begin": 7351, + "end": 8238, + "name": "tag", + "source": 19, + "value": "145" + }, + { + "begin": 7351, + "end": 8238, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7351, + "end": 8238, + "name": "POP", + "source": 19 + }, + { + "begin": 6941, + "end": 8244, + "name": "POP", + "source": 19 + }, + { + "begin": 6941, + "end": 8244, + "name": "POP", + "source": 19 + }, + { + "begin": 6941, + "end": 8244, + "name": "POP", + "source": 19 + }, + { + "begin": 6849, + "end": 8244, + "name": "POP", + "source": 19 + }, + { + "begin": 6849, + "end": 8244, + "name": "POP", + "source": 19 + }, + { + "begin": 6849, + "end": 8244, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8250, + "end": 8376, + "name": "tag", + "source": 19, + "value": "53" + }, + { + "begin": 8250, + "end": 8376, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8287, + "end": 8294, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8327, + "end": 8369, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8320, + "end": 8325, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8316, + "end": 8370, + "name": "AND", + "source": 19 + }, + { + "begin": 8305, + "end": 8370, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 8305, + "end": 8370, + "name": "POP", + "source": 19 + }, + { + "begin": 8250, + "end": 8376, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 8250, + "end": 8376, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 8250, + "end": 8376, + "name": "POP", + "source": 19 + }, + { + "begin": 8250, + "end": 8376, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8382, + "end": 8478, + "name": "tag", + "source": 19, + "value": "54" + }, + { + "begin": 8382, + "end": 8478, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8419, + "end": 8426, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8448, + "end": 8472, + "name": "PUSH [tag]", + "source": 19, + "value": "157" + }, + { + "begin": 8466, + "end": 8471, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8448, + "end": 8472, + "name": "PUSH [tag]", + "source": 19, + "value": "53" + }, + { + "begin": 8448, + "end": 8472, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8448, + "end": 8472, + "name": "tag", + "source": 19, + "value": "157" + }, + { + "begin": 8448, + "end": 8472, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8437, + "end": 8472, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 8437, + "end": 8472, + "name": "POP", + "source": 19 + }, + { + "begin": 8382, + "end": 8478, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 8382, + "end": 8478, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 8382, + "end": 8478, + "name": "POP", + "source": 19 + }, + { + "begin": 8382, + "end": 8478, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8484, + "end": 8602, + "name": "tag", + "source": 19, + "value": "55" + }, + { + "begin": 8484, + "end": 8602, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8571, + "end": 8595, + "name": "PUSH [tag]", + "source": 19, + "value": "159" + }, + { + "begin": 8589, + "end": 8594, + "name": "DUP2", + "source": 19 + }, + { + "begin": 8571, + "end": 8595, + "name": "PUSH [tag]", + "source": 19, + "value": "54" + }, + { + "begin": 8571, + "end": 8595, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8571, + "end": 8595, + "name": "tag", + "source": 19, + "value": "159" + }, + { + "begin": 8571, + "end": 8595, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8566, + "end": 8569, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8559, + "end": 8596, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 8484, + "end": 8602, + "name": "POP", + "source": 19 + }, + { + "begin": 8484, + "end": 8602, + "name": "POP", + "source": 19 + }, + { + "begin": 8484, + "end": 8602, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8608, + "end": 8830, + "name": "tag", + "source": 19, + "value": "14" + }, + { + "begin": 8608, + "end": 8830, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8701, + "end": 8705, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8739, + "end": 8741, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 8728, + "end": 8737, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8724, + "end": 8742, + "name": "ADD", + "source": 19 + }, + { + "begin": 8716, + "end": 8742, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 8716, + "end": 8742, + "name": "POP", + "source": 19 + }, + { + "begin": 8752, + "end": 8823, + "name": "PUSH [tag]", + "source": 19, + "value": "161" + }, + { + "begin": 8820, + "end": 8821, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8809, + "end": 8818, + "name": "DUP4", + "source": 19 + }, + { + "begin": 8805, + "end": 8822, + "name": "ADD", + "source": 19 + }, + { + "begin": 8796, + "end": 8802, + "name": "DUP5", + "source": 19 + }, + { + "begin": 8752, + "end": 8823, + "name": "PUSH [tag]", + "source": 19, + "value": "55" + }, + { + "begin": 8752, + "end": 8823, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8752, + "end": 8823, + "name": "tag", + "source": 19, + "value": "161" + }, + { + "begin": 8752, + "end": 8823, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8608, + "end": 8830, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 8608, + "end": 8830, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 8608, + "end": 8830, + "name": "POP", + "source": 19 + }, + { + "begin": 8608, + "end": 8830, + "name": "POP", + "source": 19 + }, + { + "begin": 8608, + "end": 8830, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 428, + "end": 2417, + "name": "tag", + "source": 18, + "value": "19" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH #[$]", + "source": 18, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [$]", + "source": 18, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 428, + "end": 2417, + "name": "CODECOPY", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 428, + "end": 2417, + "name": "RETURN", + "source": 18 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220e742470774f454e660aa990254ed1f1d8f5271ffa5f567e4e79c7881bf12ea2064736f6c634300081a0033", + ".code": [ + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "80" + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 428, + "end": 2417, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "CALLVALUE", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "ISZERO", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "1" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "REVERT", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "tag", + "source": 18, + "value": "1" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "POP", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "4" + }, + { + "begin": 428, + "end": 2417, + "name": "CALLDATASIZE", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "LT", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "2" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 428, + "end": 2417, + "name": "CALLDATALOAD", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "E0" + }, + { + "begin": 428, + "end": 2417, + "name": "SHR", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "56189236" + }, + { + "begin": 428, + "end": 2417, + "name": "GT", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "25" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "95D89B41" + }, + { + "begin": 428, + "end": 2417, + "name": "GT", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "26" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "95D89B41" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "19" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "A22CB465" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "20" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "B88D4FDE" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "21" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "C87B56DD" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "22" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "E985E9C5" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "23" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "F2FDE38B" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "24" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "2" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMP", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "tag", + "source": 18, + "value": "26" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "56189236" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "14" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "6352211E" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "15" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "70A08231" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "16" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "715018A6" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "17" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "8DA5CB5B" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "18" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "2" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMP", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "tag", + "source": 18, + "value": "25" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "23B872DD" + }, + { + "begin": 428, + "end": 2417, + "name": "GT", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "27" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "23B872DD" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "8" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "2F745C59" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "9" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "40D097C3" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "10" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "42842E0E" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "11" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "4F6CCCE7" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "12" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "55F804B3" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "13" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "2" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMP", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "tag", + "source": 18, + "value": "27" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "1FFC9A7" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "3" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "6FDDE03" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "4" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "81812FC" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "5" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "95EA7B3" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "6" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "18160DDD" + }, + { + "begin": 428, + "end": 2417, + "name": "EQ", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH [tag]", + "source": 18, + "value": "7" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "tag", + "source": 18, + "value": "2" + }, + { + "begin": 428, + "end": 2417, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 428, + "end": 2417, + "name": "DUP1", + "source": 18 + }, + { + "begin": 428, + "end": 2417, + "name": "REVERT", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "tag", + "source": 18, + "value": "3" + }, + { + "begin": 2178, + "end": 2415, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH [tag]", + "source": 18, + "value": "28" + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH", + "source": 18, + "value": "4" + }, + { + "begin": 2178, + "end": 2415, + "name": "DUP1", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "CALLDATASIZE", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SUB", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "DUP2", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "ADD", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH [tag]", + "source": 18, + "value": "29" + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH [tag]", + "source": 18, + "value": "30" + }, + { + "begin": 2178, + "end": 2415, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "tag", + "source": 18, + "value": "29" + }, + { + "begin": 2178, + "end": 2415, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH [tag]", + "source": 18, + "value": "31" + }, + { + "begin": 2178, + "end": 2415, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "tag", + "source": 18, + "value": "28" + }, + { + "begin": 2178, + "end": 2415, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 2178, + "end": 2415, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH [tag]", + "source": 18, + "value": "32" + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH [tag]", + "source": 18, + "value": "33" + }, + { + "begin": 2178, + "end": 2415, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "tag", + "source": 18, + "value": "32" + }, + { + "begin": 2178, + "end": 2415, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 2178, + "end": 2415, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "DUP1", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SUB", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "RETURN", + "source": 18 + }, + { + "begin": 2365, + "end": 2454, + "name": "tag", + "source": 5, + "value": "4" + }, + { + "begin": 2365, + "end": 2454, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "PUSH [tag]", + "source": 5, + "value": "34" + }, + { + "begin": 2365, + "end": 2454, + "name": "PUSH [tag]", + "source": 5, + "value": "35" + }, + { + "begin": 2365, + "end": 2454, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "tag", + "source": 5, + "value": "34" + }, + { + "begin": 2365, + "end": 2454, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2365, + "end": 2454, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "PUSH [tag]", + "source": 5, + "value": "36" + }, + { + "begin": 2365, + "end": 2454, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "PUSH [tag]", + "source": 5, + "value": "37" + }, + { + "begin": 2365, + "end": 2454, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "tag", + "source": 5, + "value": "36" + }, + { + "begin": 2365, + "end": 2454, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2365, + "end": 2454, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "SUB", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "RETURN", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "tag", + "source": 5, + "value": "5" + }, + { + "begin": 3497, + "end": 3651, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH [tag]", + "source": 5, + "value": "38" + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 3497, + "end": 3651, + "name": "DUP1", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SUB", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "DUP2", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "ADD", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH [tag]", + "source": 5, + "value": "39" + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH [tag]", + "source": 5, + "value": "40" + }, + { + "begin": 3497, + "end": 3651, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "tag", + "source": 5, + "value": "39" + }, + { + "begin": 3497, + "end": 3651, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH [tag]", + "source": 5, + "value": "41" + }, + { + "begin": 3497, + "end": 3651, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "tag", + "source": 5, + "value": "38" + }, + { + "begin": 3497, + "end": 3651, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 3497, + "end": 3651, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH [tag]", + "source": 5, + "value": "42" + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 3497, + "end": 3651, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "tag", + "source": 5, + "value": "42" + }, + { + "begin": 3497, + "end": 3651, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 3497, + "end": 3651, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "DUP1", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SUB", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "RETURN", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "tag", + "source": 5, + "value": "6" + }, + { + "begin": 3323, + "end": 3436, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "PUSH [tag]", + "source": 5, + "value": "44" + }, + { + "begin": 3323, + "end": 3436, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 3323, + "end": 3436, + "name": "DUP1", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "SUB", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "DUP2", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "ADD", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "PUSH [tag]", + "source": 5, + "value": "45" + }, + { + "begin": 3323, + "end": 3436, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "PUSH [tag]", + "source": 5, + "value": "46" + }, + { + "begin": 3323, + "end": 3436, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "tag", + "source": 5, + "value": "45" + }, + { + "begin": 3323, + "end": 3436, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "PUSH [tag]", + "source": 5, + "value": "47" + }, + { + "begin": 3323, + "end": 3436, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "tag", + "source": 5, + "value": "44" + }, + { + "begin": 3323, + "end": 3436, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "STOP", + "source": 5 + }, + { + "begin": 2062, + "end": 2164, + "name": "tag", + "source": 8, + "value": "7" + }, + { + "begin": 2062, + "end": 2164, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "PUSH [tag]", + "source": 8, + "value": "48" + }, + { + "begin": 2062, + "end": 2164, + "name": "PUSH [tag]", + "source": 8, + "value": "49" + }, + { + "begin": 2062, + "end": 2164, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "tag", + "source": 8, + "value": "48" + }, + { + "begin": 2062, + "end": 2164, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 2062, + "end": 2164, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "PUSH [tag]", + "source": 8, + "value": "50" + }, + { + "begin": 2062, + "end": 2164, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "PUSH [tag]", + "source": 8, + "value": "51" + }, + { + "begin": 2062, + "end": 2164, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "tag", + "source": 8, + "value": "50" + }, + { + "begin": 2062, + "end": 2164, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 2062, + "end": 2164, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "DUP1", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "SUB", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "RETURN", + "source": 8 + }, + { + "begin": 4143, + "end": 4721, + "name": "tag", + "source": 5, + "value": "8" + }, + { + "begin": 4143, + "end": 4721, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "PUSH [tag]", + "source": 5, + "value": "52" + }, + { + "begin": 4143, + "end": 4721, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 4143, + "end": 4721, + "name": "DUP1", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "SUB", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "ADD", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "PUSH [tag]", + "source": 5, + "value": "53" + }, + { + "begin": 4143, + "end": 4721, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "PUSH [tag]", + "source": 5, + "value": "54" + }, + { + "begin": 4143, + "end": 4721, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "tag", + "source": 5, + "value": "53" + }, + { + "begin": 4143, + "end": 4721, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "PUSH [tag]", + "source": 5, + "value": "55" + }, + { + "begin": 4143, + "end": 4721, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "tag", + "source": 5, + "value": "52" + }, + { + "begin": 4143, + "end": 4721, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "STOP", + "source": 5 + }, + { + "begin": 1736, + "end": 1991, + "name": "tag", + "source": 8, + "value": "9" + }, + { + "begin": 1736, + "end": 1991, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH [tag]", + "source": 8, + "value": "56" + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH", + "source": 8, + "value": "4" + }, + { + "begin": 1736, + "end": 1991, + "name": "DUP1", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "CALLDATASIZE", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SUB", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "DUP2", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "ADD", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH [tag]", + "source": 8, + "value": "57" + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH [tag]", + "source": 8, + "value": "46" + }, + { + "begin": 1736, + "end": 1991, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "tag", + "source": 8, + "value": "57" + }, + { + "begin": 1736, + "end": 1991, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH [tag]", + "source": 8, + "value": "58" + }, + { + "begin": 1736, + "end": 1991, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "tag", + "source": 8, + "value": "56" + }, + { + "begin": 1736, + "end": 1991, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 1736, + "end": 1991, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH [tag]", + "source": 8, + "value": "59" + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH [tag]", + "source": 8, + "value": "51" + }, + { + "begin": 1736, + "end": 1991, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "tag", + "source": 8, + "value": "59" + }, + { + "begin": 1736, + "end": 1991, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 1736, + "end": 1991, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "DUP1", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SUB", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "RETURN", + "source": 8 + }, + { + "begin": 891, + "end": 1146, + "name": "tag", + "source": 18, + "value": "10" + }, + { + "begin": 891, + "end": 1146, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "PUSH [tag]", + "source": 18, + "value": "60" + }, + { + "begin": 891, + "end": 1146, + "name": "PUSH", + "source": 18, + "value": "4" + }, + { + "begin": 891, + "end": 1146, + "name": "DUP1", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "CALLDATASIZE", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "SUB", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "DUP2", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "ADD", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "PUSH [tag]", + "source": 18, + "value": "61" + }, + { + "begin": 891, + "end": 1146, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "PUSH [tag]", + "source": 18, + "value": "62" + }, + { + "begin": 891, + "end": 1146, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "tag", + "source": 18, + "value": "61" + }, + { + "begin": 891, + "end": 1146, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "PUSH [tag]", + "source": 18, + "value": "63" + }, + { + "begin": 891, + "end": 1146, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "tag", + "source": 18, + "value": "60" + }, + { + "begin": 891, + "end": 1146, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "STOP", + "source": 18 + }, + { + "begin": 4787, + "end": 4919, + "name": "tag", + "source": 5, + "value": "11" + }, + { + "begin": 4787, + "end": 4919, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "PUSH [tag]", + "source": 5, + "value": "64" + }, + { + "begin": 4787, + "end": 4919, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 4787, + "end": 4919, + "name": "DUP1", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "SUB", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "ADD", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "PUSH [tag]", + "source": 5, + "value": "65" + }, + { + "begin": 4787, + "end": 4919, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "PUSH [tag]", + "source": 5, + "value": "54" + }, + { + "begin": 4787, + "end": 4919, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "tag", + "source": 5, + "value": "65" + }, + { + "begin": 4787, + "end": 4919, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "PUSH [tag]", + "source": 5, + "value": "66" + }, + { + "begin": 4787, + "end": 4919, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "tag", + "source": 5, + "value": "64" + }, + { + "begin": 4787, + "end": 4919, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "STOP", + "source": 5 + }, + { + "begin": 2236, + "end": 2462, + "name": "tag", + "source": 8, + "value": "12" + }, + { + "begin": 2236, + "end": 2462, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH [tag]", + "source": 8, + "value": "67" + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH", + "source": 8, + "value": "4" + }, + { + "begin": 2236, + "end": 2462, + "name": "DUP1", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "CALLDATASIZE", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SUB", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "DUP2", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "ADD", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH [tag]", + "source": 8, + "value": "68" + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH [tag]", + "source": 8, + "value": "40" + }, + { + "begin": 2236, + "end": 2462, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "tag", + "source": 8, + "value": "68" + }, + { + "begin": 2236, + "end": 2462, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH [tag]", + "source": 8, + "value": "69" + }, + { + "begin": 2236, + "end": 2462, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "tag", + "source": 8, + "value": "67" + }, + { + "begin": 2236, + "end": 2462, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 2236, + "end": 2462, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH [tag]", + "source": 8, + "value": "70" + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH [tag]", + "source": 8, + "value": "51" + }, + { + "begin": 2236, + "end": 2462, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "tag", + "source": 8, + "value": "70" + }, + { + "begin": 2236, + "end": 2462, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 2236, + "end": 2462, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "DUP1", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SUB", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "RETURN", + "source": 8 + }, + { + "begin": 779, + "end": 886, + "name": "tag", + "source": 18, + "value": "13" + }, + { + "begin": 779, + "end": 886, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "PUSH [tag]", + "source": 18, + "value": "71" + }, + { + "begin": 779, + "end": 886, + "name": "PUSH", + "source": 18, + "value": "4" + }, + { + "begin": 779, + "end": 886, + "name": "DUP1", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "CALLDATASIZE", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "SUB", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "DUP2", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "ADD", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "PUSH [tag]", + "source": 18, + "value": "72" + }, + { + "begin": 779, + "end": 886, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "PUSH [tag]", + "source": 18, + "value": "73" + }, + { + "begin": 779, + "end": 886, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "tag", + "source": 18, + "value": "72" + }, + { + "begin": 779, + "end": 886, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "PUSH [tag]", + "source": 18, + "value": "74" + }, + { + "begin": 779, + "end": 886, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "tag", + "source": 18, + "value": "71" + }, + { + "begin": 779, + "end": 886, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "STOP", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "tag", + "source": 18, + "value": "14" + }, + { + "begin": 1271, + "end": 1366, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "PUSH [tag]", + "source": 18, + "value": "75" + }, + { + "begin": 1271, + "end": 1366, + "name": "PUSH [tag]", + "source": 18, + "value": "76" + }, + { + "begin": 1271, + "end": 1366, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "tag", + "source": 18, + "value": "75" + }, + { + "begin": 1271, + "end": 1366, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1271, + "end": 1366, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "PUSH [tag]", + "source": 18, + "value": "77" + }, + { + "begin": 1271, + "end": 1366, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "PUSH [tag]", + "source": 18, + "value": "51" + }, + { + "begin": 1271, + "end": 1366, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "tag", + "source": 18, + "value": "77" + }, + { + "begin": 1271, + "end": 1366, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1271, + "end": 1366, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "SUB", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "RETURN", + "source": 18 + }, + { + "begin": 2185, + "end": 2303, + "name": "tag", + "source": 5, + "value": "15" + }, + { + "begin": 2185, + "end": 2303, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH [tag]", + "source": 5, + "value": "78" + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 2185, + "end": 2303, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SUB", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "ADD", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH [tag]", + "source": 5, + "value": "79" + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH [tag]", + "source": 5, + "value": "40" + }, + { + "begin": 2185, + "end": 2303, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "tag", + "source": 5, + "value": "79" + }, + { + "begin": 2185, + "end": 2303, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH [tag]", + "source": 5, + "value": "80" + }, + { + "begin": 2185, + "end": 2303, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "tag", + "source": 5, + "value": "78" + }, + { + "begin": 2185, + "end": 2303, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2185, + "end": 2303, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH [tag]", + "source": 5, + "value": "81" + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 2185, + "end": 2303, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "tag", + "source": 5, + "value": "81" + }, + { + "begin": 2185, + "end": 2303, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2185, + "end": 2303, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SUB", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "RETURN", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "tag", + "source": 5, + "value": "16" + }, + { + "begin": 1920, + "end": 2128, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH [tag]", + "source": 5, + "value": "82" + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 1920, + "end": 2128, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SUB", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "DUP2", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "ADD", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH [tag]", + "source": 5, + "value": "83" + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH [tag]", + "source": 5, + "value": "62" + }, + { + "begin": 1920, + "end": 2128, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "tag", + "source": 5, + "value": "83" + }, + { + "begin": 1920, + "end": 2128, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH [tag]", + "source": 5, + "value": "84" + }, + { + "begin": 1920, + "end": 2128, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "tag", + "source": 5, + "value": "82" + }, + { + "begin": 1920, + "end": 2128, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1920, + "end": 2128, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH [tag]", + "source": 5, + "value": "85" + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH [tag]", + "source": 5, + "value": "51" + }, + { + "begin": 1920, + "end": 2128, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "tag", + "source": 5, + "value": "85" + }, + { + "begin": 1920, + "end": 2128, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 1920, + "end": 2128, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SUB", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "RETURN", + "source": 5 + }, + { + "begin": 2293, + "end": 2394, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 2293, + "end": 2394, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2293, + "end": 2394, + "name": "PUSH [tag]", + "source": 0, + "value": "86" + }, + { + "begin": 2293, + "end": 2394, + "name": "PUSH [tag]", + "source": 0, + "value": "87" + }, + { + "begin": 2293, + "end": 2394, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2293, + "end": 2394, + "name": "tag", + "source": 0, + "value": "86" + }, + { + "begin": 2293, + "end": 2394, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2293, + "end": 2394, + "name": "STOP", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "tag", + "source": 0, + "value": "18" + }, + { + "begin": 1638, + "end": 1723, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "PUSH [tag]", + "source": 0, + "value": "88" + }, + { + "begin": 1638, + "end": 1723, + "name": "PUSH [tag]", + "source": 0, + "value": "89" + }, + { + "begin": 1638, + "end": 1723, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "tag", + "source": 0, + "value": "88" + }, + { + "begin": 1638, + "end": 1723, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1638, + "end": 1723, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "PUSH [tag]", + "source": 0, + "value": "90" + }, + { + "begin": 1638, + "end": 1723, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "PUSH [tag]", + "source": 0, + "value": "43" + }, + { + "begin": 1638, + "end": 1723, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "tag", + "source": 0, + "value": "90" + }, + { + "begin": 1638, + "end": 1723, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1638, + "end": 1723, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "SUB", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "RETURN", + "source": 0 + }, + { + "begin": 2518, + "end": 2611, + "name": "tag", + "source": 5, + "value": "19" + }, + { + "begin": 2518, + "end": 2611, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "PUSH [tag]", + "source": 5, + "value": "91" + }, + { + "begin": 2518, + "end": 2611, + "name": "PUSH [tag]", + "source": 5, + "value": "92" + }, + { + "begin": 2518, + "end": 2611, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "tag", + "source": 5, + "value": "91" + }, + { + "begin": 2518, + "end": 2611, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2518, + "end": 2611, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "PUSH [tag]", + "source": 5, + "value": "93" + }, + { + "begin": 2518, + "end": 2611, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "PUSH [tag]", + "source": 5, + "value": "37" + }, + { + "begin": 2518, + "end": 2611, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "tag", + "source": 5, + "value": "93" + }, + { + "begin": 2518, + "end": 2611, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2518, + "end": 2611, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "SUB", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "RETURN", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "tag", + "source": 5, + "value": "20" + }, + { + "begin": 3718, + "end": 3862, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "PUSH [tag]", + "source": 5, + "value": "94" + }, + { + "begin": 3718, + "end": 3862, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 3718, + "end": 3862, + "name": "DUP1", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "SUB", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "DUP2", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "ADD", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "PUSH [tag]", + "source": 5, + "value": "95" + }, + { + "begin": 3718, + "end": 3862, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "PUSH [tag]", + "source": 5, + "value": "96" + }, + { + "begin": 3718, + "end": 3862, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "tag", + "source": 5, + "value": "95" + }, + { + "begin": 3718, + "end": 3862, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "PUSH [tag]", + "source": 5, + "value": "97" + }, + { + "begin": 3718, + "end": 3862, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "tag", + "source": 5, + "value": "94" + }, + { + "begin": 3718, + "end": 3862, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "STOP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "tag", + "source": 5, + "value": "21" + }, + { + "begin": 4985, + "end": 5193, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "PUSH [tag]", + "source": 5, + "value": "98" + }, + { + "begin": 4985, + "end": 5193, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 4985, + "end": 5193, + "name": "DUP1", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "SUB", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "ADD", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "PUSH [tag]", + "source": 5, + "value": "99" + }, + { + "begin": 4985, + "end": 5193, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "PUSH [tag]", + "source": 5, + "value": "100" + }, + { + "begin": 4985, + "end": 5193, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "tag", + "source": 5, + "value": "99" + }, + { + "begin": 4985, + "end": 5193, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "PUSH [tag]", + "source": 5, + "value": "101" + }, + { + "begin": 4985, + "end": 5193, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "tag", + "source": 5, + "value": "98" + }, + { + "begin": 4985, + "end": 5193, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "STOP", + "source": 5 + }, + { + "begin": 1846, + "end": 2173, + "name": "tag", + "source": 18, + "value": "22" + }, + { + "begin": 1846, + "end": 2173, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH [tag]", + "source": 18, + "value": "102" + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH", + "source": 18, + "value": "4" + }, + { + "begin": 1846, + "end": 2173, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "CALLDATASIZE", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SUB", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "ADD", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH [tag]", + "source": 18, + "value": "103" + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH [tag]", + "source": 18, + "value": "40" + }, + { + "begin": 1846, + "end": 2173, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "tag", + "source": 18, + "value": "103" + }, + { + "begin": 1846, + "end": 2173, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH [tag]", + "source": 18, + "value": "104" + }, + { + "begin": 1846, + "end": 2173, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "tag", + "source": 18, + "value": "102" + }, + { + "begin": 1846, + "end": 2173, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1846, + "end": 2173, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH [tag]", + "source": 18, + "value": "105" + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH [tag]", + "source": 18, + "value": "37" + }, + { + "begin": 1846, + "end": 2173, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "tag", + "source": 18, + "value": "105" + }, + { + "begin": 1846, + "end": 2173, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1846, + "end": 2173, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SUB", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "RETURN", + "source": 18 + }, + { + "begin": 3928, + "end": 4081, + "name": "tag", + "source": 5, + "value": "23" + }, + { + "begin": 3928, + "end": 4081, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH [tag]", + "source": 5, + "value": "106" + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 3928, + "end": 4081, + "name": "DUP1", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "CALLDATASIZE", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SUB", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "DUP2", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "ADD", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH [tag]", + "source": 5, + "value": "107" + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH [tag]", + "source": 5, + "value": "108" + }, + { + "begin": 3928, + "end": 4081, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "tag", + "source": 5, + "value": "107" + }, + { + "begin": 3928, + "end": 4081, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH [tag]", + "source": 5, + "value": "109" + }, + { + "begin": 3928, + "end": 4081, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "tag", + "source": 5, + "value": "106" + }, + { + "begin": 3928, + "end": 4081, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 3928, + "end": 4081, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH [tag]", + "source": 5, + "value": "110" + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH [tag]", + "source": 5, + "value": "33" + }, + { + "begin": 3928, + "end": 4081, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "tag", + "source": 5, + "value": "110" + }, + { + "begin": 3928, + "end": 4081, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 3928, + "end": 4081, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "DUP1", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SUB", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "RETURN", + "source": 5 + }, + { + "begin": 2543, + "end": 2758, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 2543, + "end": 2758, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "PUSH [tag]", + "source": 0, + "value": "111" + }, + { + "begin": 2543, + "end": 2758, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 2543, + "end": 2758, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "SUB", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "ADD", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "PUSH [tag]", + "source": 0, + "value": "112" + }, + { + "begin": 2543, + "end": 2758, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "PUSH [tag]", + "source": 0, + "value": "62" + }, + { + "begin": 2543, + "end": 2758, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "tag", + "source": 0, + "value": "112" + }, + { + "begin": 2543, + "end": 2758, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "PUSH [tag]", + "source": 0, + "value": "113" + }, + { + "begin": 2543, + "end": 2758, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "tag", + "source": 0, + "value": "111" + }, + { + "begin": 2543, + "end": 2758, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "STOP", + "source": 0 + }, + { + "begin": 2178, + "end": 2415, + "name": "tag", + "source": 18, + "value": "31" + }, + { + "begin": 2178, + "end": 2415, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2345, + "end": 2349, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 2372, + "end": 2408, + "name": "PUSH [tag]", + "source": 18, + "value": "115" + }, + { + "begin": 2396, + "end": 2407, + "name": "DUP3", + "source": 18 + }, + { + "begin": 2372, + "end": 2395, + "name": "PUSH [tag]", + "source": 18, + "value": "116" + }, + { + "begin": 2372, + "end": 2408, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2372, + "end": 2408, + "name": "tag", + "source": 18, + "value": "115" + }, + { + "begin": 2372, + "end": 2408, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2365, + "end": 2408, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2365, + "end": 2408, + "name": "POP", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "name": "POP", + "source": 18 + }, + { + "begin": 2178, + "end": 2415, + "jumpType": "[out]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2365, + "end": 2454, + "name": "tag", + "source": 5, + "value": "35" + }, + { + "begin": 2365, + "end": 2454, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2410, + "end": 2423, + "name": "PUSH", + "source": 5, + "value": "60" + }, + { + "begin": 2442, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "118" + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "119" + }, + { + "begin": 2435, + "end": 2447, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "tag", + "source": 5, + "value": "118" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DIV", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "MUL", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2435, + "end": 2447, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2435, + "end": 2447, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "120" + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "119" + }, + { + "begin": 2435, + "end": 2447, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "tag", + "source": 5, + "value": "120" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "121" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 2435, + "end": 2447, + "name": "LT", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "122" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP4", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DIV", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "MUL", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP4", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "121" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "tag", + "source": 5, + "value": "122" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2435, + "end": 2447, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2435, + "end": 2447, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "tag", + "source": 5, + "value": "123" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP4", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "GT", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH [tag]", + "source": 5, + "value": "123" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SUB", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 2435, + "end": 2447, + "name": "AND", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "ADD", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "tag", + "source": 5, + "value": "121" + }, + { + "begin": 2435, + "end": 2447, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "POP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "POP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "POP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "POP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "POP", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2435, + "end": 2447, + "name": "POP", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2365, + "end": 2454, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "tag", + "source": 5, + "value": "41" + }, + { + "begin": 3497, + "end": 3651, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3564, + "end": 3571, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 3583, + "end": 3605, + "name": "PUSH [tag]", + "source": 5, + "value": "125" + }, + { + "begin": 3597, + "end": 3604, + "name": "DUP3", + "source": 5 + }, + { + "begin": 3583, + "end": 3596, + "name": "PUSH [tag]", + "source": 5, + "value": "126" + }, + { + "begin": 3583, + "end": 3605, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3583, + "end": 3605, + "name": "tag", + "source": 5, + "value": "125" + }, + { + "begin": 3583, + "end": 3605, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3583, + "end": 3605, + "name": "POP", + "source": 5 + }, + { + "begin": 3623, + "end": 3644, + "name": "PUSH [tag]", + "source": 5, + "value": "127" + }, + { + "begin": 3636, + "end": 3643, + "name": "DUP3", + "source": 5 + }, + { + "begin": 3623, + "end": 3635, + "name": "PUSH [tag]", + "source": 5, + "value": "128" + }, + { + "begin": 3623, + "end": 3644, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3623, + "end": 3644, + "name": "tag", + "source": 5, + "value": "127" + }, + { + "begin": 3623, + "end": 3644, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3616, + "end": 3644, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3616, + "end": 3644, + "name": "POP", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "name": "POP", + "source": 5 + }, + { + "begin": 3497, + "end": 3651, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "tag", + "source": 5, + "value": "47" + }, + { + "begin": 3323, + "end": 3436, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3394, + "end": 3429, + "name": "PUSH [tag]", + "source": 5, + "value": "130" + }, + { + "begin": 3403, + "end": 3405, + "name": "DUP3", + "source": 5 + }, + { + "begin": 3407, + "end": 3414, + "name": "DUP3", + "source": 5 + }, + { + "begin": 3416, + "end": 3428, + "name": "PUSH [tag]", + "source": 5, + "value": "131" + }, + { + "begin": 3416, + "end": 3426, + "name": "PUSH [tag]", + "source": 5, + "value": "132" + }, + { + "begin": 3416, + "end": 3428, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3416, + "end": 3428, + "name": "tag", + "source": 5, + "value": "131" + }, + { + "begin": 3416, + "end": 3428, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3394, + "end": 3402, + "name": "PUSH [tag]", + "source": 5, + "value": "133" + }, + { + "begin": 3394, + "end": 3429, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3394, + "end": 3429, + "name": "tag", + "source": 5, + "value": "130" + }, + { + "begin": 3394, + "end": 3429, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "POP", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "name": "POP", + "source": 5 + }, + { + "begin": 3323, + "end": 3436, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2062, + "end": 2164, + "name": "tag", + "source": 8, + "value": "49" + }, + { + "begin": 2062, + "end": 2164, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2114, + "end": 2121, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2140, + "end": 2150, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 2140, + "end": 2157, + "name": "DUP1", + "source": 8 + }, + { + "begin": 2140, + "end": 2157, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 2140, + "end": 2157, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2140, + "end": 2157, + "name": "POP", + "source": 8 + }, + { + "begin": 2133, + "end": 2157, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2133, + "end": 2157, + "name": "POP", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2062, + "end": 2164, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 4143, + "end": 4721, + "name": "tag", + "source": 5, + "value": "55" + }, + { + "begin": 4143, + "end": 4721, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4251, + "end": 4252, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4237, + "end": 4253, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4237, + "end": 4253, + "name": "AND", + "source": 5 + }, + { + "begin": 4237, + "end": 4239, + "name": "DUP3", + "source": 5 + }, + { + "begin": 4237, + "end": 4253, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4237, + "end": 4253, + "name": "AND", + "source": 5 + }, + { + "begin": 4237, + "end": 4253, + "name": "SUB", + "source": 5 + }, + { + "begin": 4233, + "end": 4320, + "name": "PUSH [tag]", + "source": 5, + "value": "136" + }, + { + "begin": 4233, + "end": 4320, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 4306, + "end": 4307, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4276, + "end": 4309, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 4276, + "end": 4309, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "PUSH", + "source": 5, + "value": "64A0AE9200000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4276, + "end": 4309, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 4276, + "end": 4309, + "name": "ADD", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "PUSH [tag]", + "source": 5, + "value": "137" + }, + { + "begin": 4276, + "end": 4309, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 4276, + "end": 4309, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "tag", + "source": 5, + "value": "137" + }, + { + "begin": 4276, + "end": 4309, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 4276, + "end": 4309, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "DUP1", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "SUB", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4276, + "end": 4309, + "name": "REVERT", + "source": 5 + }, + { + "begin": 4233, + "end": 4320, + "name": "tag", + "source": 5, + "value": "136" + }, + { + "begin": 4233, + "end": 4320, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4538, + "end": 4559, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4562, + "end": 4596, + "name": "PUSH [tag]", + "source": 5, + "value": "138" + }, + { + "begin": 4570, + "end": 4572, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4574, + "end": 4581, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4583, + "end": 4595, + "name": "PUSH [tag]", + "source": 5, + "value": "139" + }, + { + "begin": 4583, + "end": 4593, + "name": "PUSH [tag]", + "source": 5, + "value": "132" + }, + { + "begin": 4583, + "end": 4595, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4583, + "end": 4595, + "name": "tag", + "source": 5, + "value": "139" + }, + { + "begin": 4583, + "end": 4595, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4562, + "end": 4569, + "name": "PUSH [tag]", + "source": 5, + "value": "140" + }, + { + "begin": 4562, + "end": 4596, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4562, + "end": 4596, + "name": "tag", + "source": 5, + "value": "138" + }, + { + "begin": 4562, + "end": 4596, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4538, + "end": 4596, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4538, + "end": 4596, + "name": "POP", + "source": 5 + }, + { + "begin": 4627, + "end": 4631, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4610, + "end": 4631, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4610, + "end": 4631, + "name": "AND", + "source": 5 + }, + { + "begin": 4610, + "end": 4623, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4610, + "end": 4631, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4610, + "end": 4631, + "name": "AND", + "source": 5 + }, + { + "begin": 4610, + "end": 4631, + "name": "EQ", + "source": 5 + }, + { + "begin": 4606, + "end": 4715, + "name": "PUSH [tag]", + "source": 5, + "value": "141" + }, + { + "begin": 4606, + "end": 4715, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 4675, + "end": 4679, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4681, + "end": 4688, + "name": "DUP3", + "source": 5 + }, + { + "begin": 4690, + "end": 4703, + "name": "DUP3", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 4654, + "end": 4704, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "PUSH", + "source": 5, + "value": "64283D7B00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4654, + "end": 4704, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 4654, + "end": 4704, + "name": "ADD", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "PUSH [tag]", + "source": 5, + "value": "142" + }, + { + "begin": 4654, + "end": 4704, + "name": "SWAP4", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "PUSH [tag]", + "source": 5, + "value": "143" + }, + { + "begin": 4654, + "end": 4704, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "tag", + "source": 5, + "value": "142" + }, + { + "begin": 4654, + "end": 4704, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 4654, + "end": 4704, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "DUP1", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "SUB", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4654, + "end": 4704, + "name": "REVERT", + "source": 5 + }, + { + "begin": 4606, + "end": 4715, + "name": "tag", + "source": 5, + "value": "141" + }, + { + "begin": 4606, + "end": 4715, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4223, + "end": 4721, + "name": "POP", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "POP", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "POP", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "name": "POP", + "source": 5 + }, + { + "begin": 4143, + "end": 4721, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1736, + "end": 1991, + "name": "tag", + "source": 8, + "value": "58" + }, + { + "begin": 1736, + "end": 1991, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1824, + "end": 1831, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 1856, + "end": 1872, + "name": "PUSH [tag]", + "source": 8, + "value": "145" + }, + { + "begin": 1866, + "end": 1871, + "name": "DUP4", + "source": 8 + }, + { + "begin": 1856, + "end": 1865, + "name": "PUSH [tag]", + "source": 8, + "value": "84" + }, + { + "begin": 1856, + "end": 1872, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 1856, + "end": 1872, + "name": "tag", + "source": 8, + "value": "145" + }, + { + "begin": 1856, + "end": 1872, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1847, + "end": 1852, + "name": "DUP3", + "source": 8 + }, + { + "begin": 1847, + "end": 1872, + "name": "LT", + "source": 8 + }, + { + "begin": 1843, + "end": 1942, + "name": "PUSH [tag]", + "source": 8, + "value": "146" + }, + { + "begin": 1843, + "end": 1942, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 1918, + "end": 1923, + "name": "DUP3", + "source": 8 + }, + { + "begin": 1925, + "end": 1930, + "name": "DUP3", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 1895, + "end": 1931, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "PUSH", + "source": 8, + "value": "A57D13DC00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1895, + "end": 1931, + "name": "DUP2", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "PUSH", + "source": 8, + "value": "4" + }, + { + "begin": 1895, + "end": 1931, + "name": "ADD", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "PUSH [tag]", + "source": 8, + "value": "147" + }, + { + "begin": 1895, + "end": 1931, + "name": "SWAP3", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "PUSH [tag]", + "source": 8, + "value": "148" + }, + { + "begin": 1895, + "end": 1931, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "tag", + "source": 8, + "value": "147" + }, + { + "begin": 1895, + "end": 1931, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 1895, + "end": 1931, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "DUP1", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "SUB", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1895, + "end": 1931, + "name": "REVERT", + "source": 8 + }, + { + "begin": 1843, + "end": 1942, + "name": "tag", + "source": 8, + "value": "146" + }, + { + "begin": 1843, + "end": 1942, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1958, + "end": 1970, + "name": "PUSH", + "source": 8, + "value": "6" + }, + { + "begin": 1958, + "end": 1977, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 1971, + "end": 1976, + "name": "DUP5", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1958, + "end": 1977, + "name": "AND", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1958, + "end": 1977, + "name": "AND", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "DUP2", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 1958, + "end": 1977, + "name": "ADD", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "DUP2", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 1958, + "end": 1977, + "name": "ADD", + "source": 8 + }, + { + "begin": 1958, + "end": 1977, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 1958, + "end": 1977, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 1978, + "end": 1983, + "name": "DUP4", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "DUP2", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 1958, + "end": 1984, + "name": "ADD", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "DUP2", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 1958, + "end": 1984, + "name": "ADD", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 1958, + "end": 1984, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 1958, + "end": 1984, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 1951, + "end": 1984, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1951, + "end": 1984, + "name": "POP", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP3", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "POP", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "name": "POP", + "source": 8 + }, + { + "begin": 1736, + "end": 1991, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 891, + "end": 1146, + "name": "tag", + "source": 18, + "value": "63" + }, + { + "begin": 891, + "end": 1146, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1531, + "end": 1544, + "name": "PUSH [tag]", + "source": 0, + "value": "150" + }, + { + "begin": 1531, + "end": 1542, + "name": "PUSH [tag]", + "source": 0, + "value": "151" + }, + { + "begin": 1531, + "end": 1544, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1531, + "end": 1544, + "name": "tag", + "source": 0, + "value": "150" + }, + { + "begin": 1531, + "end": 1544, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 948, + "end": 963, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 966, + "end": 978, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "C" + }, + { + "begin": 966, + "end": 978, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "DUP2", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SLOAD", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "DUP1", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SWAP3", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "153" + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "154" + }, + { + "begin": 966, + "end": 980, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "tag", + "source": 18, + "value": "153" + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "POP", + "source": 18 + }, + { + "begin": 966, + "end": 980, + "modifierDepth": 1, + "name": "SSTORE", + "source": 18 + }, + { + "begin": 948, + "end": 980, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 948, + "end": 980, + "modifierDepth": 1, + "name": "POP", + "source": 18 + }, + { + "begin": 990, + "end": 1012, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "155" + }, + { + "begin": 1000, + "end": 1002, + "modifierDepth": 1, + "name": "DUP3", + "source": 18 + }, + { + "begin": 1004, + "end": 1011, + "modifierDepth": 1, + "name": "DUP3", + "source": 18 + }, + { + "begin": 990, + "end": 999, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "156" + }, + { + "begin": 990, + "end": 1012, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 18 + }, + { + "begin": 990, + "end": 1012, + "modifierDepth": 1, + "name": "tag", + "source": 18, + "value": "155" + }, + { + "begin": 990, + "end": 1012, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1022, + "end": 1139, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "157" + }, + { + "begin": 1048, + "end": 1055, + "modifierDepth": 1, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1093, + "end": 1118, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "158" + }, + { + "begin": 1110, + "end": 1117, + "modifierDepth": 1, + "name": "DUP4", + "source": 18 + }, + { + "begin": 1093, + "end": 1109, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "159" + }, + { + "begin": 1093, + "end": 1118, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 18 + }, + { + "begin": 1093, + "end": 1118, + "modifierDepth": 1, + "name": "tag", + "source": 18, + "value": "158" + }, + { + "begin": 1093, + "end": 1118, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "ADD", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "160" + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "161" + }, + { + "begin": 1076, + "end": 1128, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "tag", + "source": 18, + "value": "160" + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "DUP4", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "SUB", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "SUB", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1076, + "end": 1128, + "modifierDepth": 1, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 1022, + "end": 1034, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "162" + }, + { + "begin": 1022, + "end": 1139, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 18 + }, + { + "begin": 1022, + "end": 1139, + "modifierDepth": 1, + "name": "tag", + "source": 18, + "value": "157" + }, + { + "begin": 1022, + "end": 1139, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 938, + "end": 1146, + "modifierDepth": 1, + "name": "POP", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "name": "POP", + "source": 18 + }, + { + "begin": 891, + "end": 1146, + "jumpType": "[out]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 4787, + "end": 4919, + "name": "tag", + "source": 5, + "value": "66" + }, + { + "begin": 4787, + "end": 4919, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "PUSH [tag]", + "source": 5, + "value": "164" + }, + { + "begin": 4890, + "end": 4894, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4896, + "end": 4898, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4900, + "end": 4907, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 4873, + "end": 4912, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "DUP1", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 4873, + "end": 4912, + "name": "ADD", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 4873, + "end": 4912, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "DUP1", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4873, + "end": 4912, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "POP", + "source": 5 + }, + { + "begin": 4873, + "end": 4889, + "name": "PUSH [tag]", + "source": 5, + "value": "101" + }, + { + "begin": 4873, + "end": 4912, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4873, + "end": 4912, + "name": "tag", + "source": 5, + "value": "164" + }, + { + "begin": 4873, + "end": 4912, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "POP", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "POP", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "name": "POP", + "source": 5 + }, + { + "begin": 4787, + "end": 4919, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2236, + "end": 2462, + "name": "tag", + "source": 8, + "value": "69" + }, + { + "begin": 2236, + "end": 2462, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2302, + "end": 2309, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2334, + "end": 2347, + "name": "PUSH [tag]", + "source": 8, + "value": "166" + }, + { + "begin": 2334, + "end": 2345, + "name": "PUSH [tag]", + "source": 8, + "value": "49" + }, + { + "begin": 2334, + "end": 2347, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2334, + "end": 2347, + "name": "tag", + "source": 8, + "value": "166" + }, + { + "begin": 2334, + "end": 2347, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2325, + "end": 2330, + "name": "DUP3", + "source": 8 + }, + { + "begin": 2325, + "end": 2347, + "name": "LT", + "source": 8 + }, + { + "begin": 2321, + "end": 2422, + "name": "PUSH [tag]", + "source": 8, + "value": "167" + }, + { + "begin": 2321, + "end": 2422, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 2401, + "end": 2402, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2405, + "end": 2410, + "name": "DUP3", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 2370, + "end": 2411, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "PUSH", + "source": 8, + "value": "A57D13DC00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2370, + "end": 2411, + "name": "DUP2", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "PUSH", + "source": 8, + "value": "4" + }, + { + "begin": 2370, + "end": 2411, + "name": "ADD", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "PUSH [tag]", + "source": 8, + "value": "168" + }, + { + "begin": 2370, + "end": 2411, + "name": "SWAP3", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "PUSH [tag]", + "source": 8, + "value": "148" + }, + { + "begin": 2370, + "end": 2411, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "tag", + "source": 8, + "value": "168" + }, + { + "begin": 2370, + "end": 2411, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "PUSH", + "source": 8, + "value": "40" + }, + { + "begin": 2370, + "end": 2411, + "name": "MLOAD", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "DUP1", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "SUB", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2370, + "end": 2411, + "name": "REVERT", + "source": 8 + }, + { + "begin": 2321, + "end": 2422, + "name": "tag", + "source": 8, + "value": "167" + }, + { + "begin": 2321, + "end": 2422, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2438, + "end": 2448, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 2449, + "end": 2454, + "name": "DUP3", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "DUP2", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "DUP2", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "LT", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "PUSH [tag]", + "source": 8, + "value": "169" + }, + { + "begin": 2438, + "end": 2455, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "PUSH [tag]", + "source": 8, + "value": "170" + }, + { + "begin": 2438, + "end": 2455, + "name": "PUSH [tag]", + "source": 8, + "value": "171" + }, + { + "begin": 2438, + "end": 2455, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "tag", + "source": 8, + "value": "170" + }, + { + "begin": 2438, + "end": 2455, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "tag", + "source": 8, + "value": "169" + }, + { + "begin": 2438, + "end": 2455, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2438, + "end": 2455, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 2438, + "end": 2455, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2438, + "end": 2455, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "ADD", + "source": 8 + }, + { + "begin": 2438, + "end": 2455, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 2431, + "end": 2455, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2431, + "end": 2455, + "name": "POP", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "name": "POP", + "source": 8 + }, + { + "begin": 2236, + "end": 2462, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 779, + "end": 886, + "name": "tag", + "source": 18, + "value": "74" + }, + { + "begin": 779, + "end": 886, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1531, + "end": 1544, + "name": "PUSH [tag]", + "source": 0, + "value": "174" + }, + { + "begin": 1531, + "end": 1542, + "name": "PUSH [tag]", + "source": 0, + "value": "151" + }, + { + "begin": 1531, + "end": 1544, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1531, + "end": 1544, + "name": "tag", + "source": 0, + "value": "174" + }, + { + "begin": 1531, + "end": 1544, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 871, + "end": 879, + "modifierDepth": 1, + "name": "DUP1", + "source": 18 + }, + { + "begin": 852, + "end": 868, + "modifierDepth": 1, + "name": "PUSH", + "source": 18, + "value": "D" + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "DUP2", + "source": 18 + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "176" + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 18, + "value": "177" + }, + { + "begin": 852, + "end": 879, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 18 + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "tag", + "source": 18, + "value": "176" + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 852, + "end": 879, + "modifierDepth": 1, + "name": "POP", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "name": "POP", + "source": 18 + }, + { + "begin": 779, + "end": 886, + "jumpType": "[out]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "tag", + "source": 18, + "value": "76" + }, + { + "begin": 1271, + "end": 1366, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1321, + "end": 1328, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 1347, + "end": 1359, + "name": "PUSH", + "source": 18, + "value": "C" + }, + { + "begin": 1347, + "end": 1359, + "name": "SLOAD", + "source": 18 + }, + { + "begin": 1340, + "end": 1359, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1340, + "end": 1359, + "name": "POP", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1271, + "end": 1366, + "jumpType": "[out]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2185, + "end": 2303, + "name": "tag", + "source": 5, + "value": "80" + }, + { + "begin": 2185, + "end": 2303, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2248, + "end": 2255, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2274, + "end": 2296, + "name": "PUSH [tag]", + "source": 5, + "value": "180" + }, + { + "begin": 2288, + "end": 2295, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2274, + "end": 2287, + "name": "PUSH [tag]", + "source": 5, + "value": "126" + }, + { + "begin": 2274, + "end": 2296, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2274, + "end": 2296, + "name": "tag", + "source": 5, + "value": "180" + }, + { + "begin": 2274, + "end": 2296, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2267, + "end": 2296, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2267, + "end": 2296, + "name": "POP", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "name": "POP", + "source": 5 + }, + { + "begin": 2185, + "end": 2303, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "tag", + "source": 5, + "value": "84" + }, + { + "begin": 1920, + "end": 2128, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1983, + "end": 1990, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2023, + "end": 2024, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2006, + "end": 2025, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2006, + "end": 2025, + "name": "AND", + "source": 5 + }, + { + "begin": 2006, + "end": 2011, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2006, + "end": 2025, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2006, + "end": 2025, + "name": "AND", + "source": 5 + }, + { + "begin": 2006, + "end": 2025, + "name": "SUB", + "source": 5 + }, + { + "begin": 2002, + "end": 2089, + "name": "PUSH [tag]", + "source": 5, + "value": "182" + }, + { + "begin": 2002, + "end": 2089, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 2075, + "end": 2076, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2048, + "end": 2078, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2048, + "end": 2078, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "PUSH", + "source": 5, + "value": "89C62B6400000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2048, + "end": 2078, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 2048, + "end": 2078, + "name": "ADD", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "PUSH [tag]", + "source": 5, + "value": "183" + }, + { + "begin": 2048, + "end": 2078, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 2048, + "end": 2078, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "tag", + "source": 5, + "value": "183" + }, + { + "begin": 2048, + "end": 2078, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2048, + "end": 2078, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "SUB", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2048, + "end": 2078, + "name": "REVERT", + "source": 5 + }, + { + "begin": 2002, + "end": 2089, + "name": "tag", + "source": 5, + "value": "182" + }, + { + "begin": 2002, + "end": 2089, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2105, + "end": 2114, + "name": "PUSH", + "source": 5, + "value": "3" + }, + { + "begin": 2105, + "end": 2121, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2115, + "end": 2120, + "name": "DUP4", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2105, + "end": 2121, + "name": "AND", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2105, + "end": 2121, + "name": "AND", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2105, + "end": 2121, + "name": "ADD", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2105, + "end": 2121, + "name": "ADD", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2105, + "end": 2121, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 2105, + "end": 2121, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2098, + "end": 2121, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2098, + "end": 2121, + "name": "POP", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "name": "POP", + "source": 5 + }, + { + "begin": 1920, + "end": 2128, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2293, + "end": 2394, + "name": "tag", + "source": 0, + "value": "87" + }, + { + "begin": 2293, + "end": 2394, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1531, + "end": 1544, + "name": "PUSH [tag]", + "source": 0, + "value": "185" + }, + { + "begin": 1531, + "end": 1542, + "name": "PUSH [tag]", + "source": 0, + "value": "151" + }, + { + "begin": 1531, + "end": 1544, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1531, + "end": 1544, + "name": "tag", + "source": 0, + "value": "185" + }, + { + "begin": 1531, + "end": 1544, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2357, + "end": 2387, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "187" + }, + { + "begin": 2384, + "end": 2385, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2357, + "end": 2375, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "188" + }, + { + "begin": 2357, + "end": 2387, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 0 + }, + { + "begin": 2357, + "end": 2387, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "187" + }, + { + "begin": 2357, + "end": 2387, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2293, + "end": 2394, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "tag", + "source": 0, + "value": "89" + }, + { + "begin": 1638, + "end": 1723, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1684, + "end": 1691, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1710, + "end": 1716, + "name": "PUSH", + "source": 0, + "value": "B" + }, + { + "begin": 1710, + "end": 1716, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1710, + "end": 1716, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1710, + "end": 1716, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 1710, + "end": 1716, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1710, + "end": 1716, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 1710, + "end": 1716, + "name": "EXP", + "source": 0 + }, + { + "begin": 1710, + "end": 1716, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1710, + "end": 1716, + "name": "DIV", + "source": 0 + }, + { + "begin": 1710, + "end": 1716, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1710, + "end": 1716, + "name": "AND", + "source": 0 + }, + { + "begin": 1703, + "end": 1716, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1703, + "end": 1716, + "name": "POP", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1638, + "end": 1723, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2518, + "end": 2611, + "name": "tag", + "source": 5, + "value": "92" + }, + { + "begin": 2518, + "end": 2611, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2565, + "end": 2578, + "name": "PUSH", + "source": 5, + "value": "60" + }, + { + "begin": 2597, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "191" + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "119" + }, + { + "begin": 2590, + "end": 2604, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "tag", + "source": 5, + "value": "191" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DIV", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "MUL", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2590, + "end": 2604, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 2590, + "end": 2604, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "192" + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "119" + }, + { + "begin": 2590, + "end": 2604, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "tag", + "source": 5, + "value": "192" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "193" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 2590, + "end": 2604, + "name": "LT", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "194" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP4", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DIV", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "MUL", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP4", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "193" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "tag", + "source": 5, + "value": "194" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2590, + "end": 2604, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 2590, + "end": 2604, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "tag", + "source": 5, + "value": "195" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP4", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "GT", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH [tag]", + "source": 5, + "value": "195" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SUB", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 2590, + "end": 2604, + "name": "AND", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "DUP3", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "ADD", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "tag", + "source": 5, + "value": "193" + }, + { + "begin": 2590, + "end": 2604, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "POP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "POP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "POP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "POP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "POP", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2590, + "end": 2604, + "name": "POP", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 2518, + "end": 2611, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "tag", + "source": 5, + "value": "97" + }, + { + "begin": 3718, + "end": 3862, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3803, + "end": 3855, + "name": "PUSH [tag]", + "source": 5, + "value": "197" + }, + { + "begin": 3822, + "end": 3834, + "name": "PUSH [tag]", + "source": 5, + "value": "198" + }, + { + "begin": 3822, + "end": 3832, + "name": "PUSH [tag]", + "source": 5, + "value": "132" + }, + { + "begin": 3822, + "end": 3834, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3822, + "end": 3834, + "name": "tag", + "source": 5, + "value": "198" + }, + { + "begin": 3822, + "end": 3834, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3836, + "end": 3844, + "name": "DUP4", + "source": 5 + }, + { + "begin": 3846, + "end": 3854, + "name": "DUP4", + "source": 5 + }, + { + "begin": 3803, + "end": 3821, + "name": "PUSH [tag]", + "source": 5, + "value": "199" + }, + { + "begin": 3803, + "end": 3855, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3803, + "end": 3855, + "name": "tag", + "source": 5, + "value": "197" + }, + { + "begin": 3803, + "end": 3855, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "POP", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "name": "POP", + "source": 5 + }, + { + "begin": 3718, + "end": 3862, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "tag", + "source": 5, + "value": "101" + }, + { + "begin": 4985, + "end": 5193, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 5098, + "end": 5129, + "name": "PUSH [tag]", + "source": 5, + "value": "201" + }, + { + "begin": 5111, + "end": 5115, + "name": "DUP5", + "source": 5 + }, + { + "begin": 5117, + "end": 5119, + "name": "DUP5", + "source": 5 + }, + { + "begin": 5121, + "end": 5128, + "name": "DUP5", + "source": 5 + }, + { + "begin": 5098, + "end": 5110, + "name": "PUSH [tag]", + "source": 5, + "value": "55" + }, + { + "begin": 5098, + "end": 5129, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 5098, + "end": 5129, + "name": "tag", + "source": 5, + "value": "201" + }, + { + "begin": 5098, + "end": 5129, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 5139, + "end": 5186, + "name": "PUSH [tag]", + "source": 5, + "value": "202" + }, + { + "begin": 5162, + "end": 5166, + "name": "DUP5", + "source": 5 + }, + { + "begin": 5168, + "end": 5170, + "name": "DUP5", + "source": 5 + }, + { + "begin": 5172, + "end": 5179, + "name": "DUP5", + "source": 5 + }, + { + "begin": 5181, + "end": 5185, + "name": "DUP5", + "source": 5 + }, + { + "begin": 5139, + "end": 5161, + "name": "PUSH [tag]", + "source": 5, + "value": "203" + }, + { + "begin": 5139, + "end": 5186, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 5139, + "end": 5186, + "name": "tag", + "source": 5, + "value": "202" + }, + { + "begin": 5139, + "end": 5186, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "POP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "POP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "POP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "name": "POP", + "source": 5 + }, + { + "begin": 4985, + "end": 5193, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1846, + "end": 2173, + "name": "tag", + "source": 18, + "value": "104" + }, + { + "begin": 1846, + "end": 2173, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1951, + "end": 1964, + "name": "PUSH", + "source": 18, + "value": "60" + }, + { + "begin": 1976, + "end": 1997, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 2000, + "end": 2010, + "name": "PUSH [tag]", + "source": 18, + "value": "205" + }, + { + "begin": 2000, + "end": 2008, + "name": "PUSH [tag]", + "source": 18, + "value": "206" + }, + { + "begin": 2000, + "end": 2010, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2000, + "end": 2010, + "name": "tag", + "source": 18, + "value": "205" + }, + { + "begin": 2000, + "end": 2010, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1976, + "end": 2010, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1976, + "end": 2010, + "name": "POP", + "source": 18 + }, + { + "begin": 2063, + "end": 2064, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 2045, + "end": 2052, + "name": "DUP2", + "source": 18 + }, + { + "begin": 2039, + "end": 2060, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 2039, + "end": 2064, + "name": "GT", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "PUSH [tag]", + "source": 18, + "value": "207" + }, + { + "begin": 2039, + "end": 2166, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 2039, + "end": 2166, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "DUP1", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 2039, + "end": 2166, + "name": "ADD", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 2039, + "end": 2166, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "DUP1", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 2039, + "end": 2166, + "name": "DUP2", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "POP", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "PUSH [tag]", + "source": 18, + "value": "208" + }, + { + "begin": 2039, + "end": 2166, + "name": "JUMP", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "tag", + "source": 18, + "value": "207" + }, + { + "begin": 2039, + "end": 2166, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2107, + "end": 2114, + "name": "DUP1", + "source": 18 + }, + { + "begin": 2116, + "end": 2134, + "name": "PUSH [tag]", + "source": 18, + "value": "209" + }, + { + "begin": 2116, + "end": 2123, + "name": "DUP5", + "source": 18 + }, + { + "begin": 2116, + "end": 2132, + "name": "PUSH [tag]", + "source": 18, + "value": "159" + }, + { + "begin": 2116, + "end": 2134, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2116, + "end": 2134, + "name": "tag", + "source": 18, + "value": "209" + }, + { + "begin": 2116, + "end": 2134, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 2090, + "end": 2144, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 2090, + "end": 2144, + "name": "ADD", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "PUSH [tag]", + "source": 18, + "value": "210" + }, + { + "begin": 2090, + "end": 2144, + "name": "SWAP3", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "PUSH [tag]", + "source": 18, + "value": "211" + }, + { + "begin": 2090, + "end": 2144, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "tag", + "source": 18, + "value": "210" + }, + { + "begin": 2090, + "end": 2144, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 2090, + "end": 2144, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 2090, + "end": 2144, + "name": "DUP2", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "DUP4", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "SUB", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "SUB", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "DUP2", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 2090, + "end": 2144, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 2090, + "end": 2144, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 2039, + "end": 2166, + "name": "tag", + "source": 18, + "value": "208" + }, + { + "begin": 2039, + "end": 2166, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 2020, + "end": 2166, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 2020, + "end": 2166, + "name": "POP", + "source": 18 + }, + { + "begin": 2020, + "end": 2166, + "name": "POP", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "name": "POP", + "source": 18 + }, + { + "begin": 1846, + "end": 2173, + "jumpType": "[out]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 3928, + "end": 4081, + "name": "tag", + "source": 5, + "value": "109" + }, + { + "begin": 3928, + "end": 4081, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 4016, + "end": 4020, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4039, + "end": 4057, + "name": "PUSH", + "source": 5, + "value": "5" + }, + { + "begin": 4039, + "end": 4064, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4058, + "end": 4063, + "name": "DUP5", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4039, + "end": 4064, + "name": "AND", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4039, + "end": 4064, + "name": "AND", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 4039, + "end": 4064, + "name": "ADD", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 4039, + "end": 4064, + "name": "ADD", + "source": 5 + }, + { + "begin": 4039, + "end": 4064, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4039, + "end": 4064, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4065, + "end": 4073, + "name": "DUP4", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4039, + "end": 4074, + "name": "AND", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4039, + "end": 4074, + "name": "AND", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 4039, + "end": 4074, + "name": "ADD", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "DUP2", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 4039, + "end": 4074, + "name": "ADD", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4039, + "end": 4074, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 4039, + "end": 4074, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 4039, + "end": 4074, + "name": "EXP", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "DIV", + "source": 5 + }, + { + "begin": 4039, + "end": 4074, + "name": "PUSH", + "source": 5, + "value": "FF" + }, + { + "begin": 4039, + "end": 4074, + "name": "AND", + "source": 5 + }, + { + "begin": 4032, + "end": 4074, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 4032, + "end": 4074, + "name": "POP", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "POP", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "name": "POP", + "source": 5 + }, + { + "begin": 3928, + "end": 4081, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2543, + "end": 2758, + "name": "tag", + "source": 0, + "value": "113" + }, + { + "begin": 2543, + "end": 2758, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1531, + "end": 1544, + "name": "PUSH [tag]", + "source": 0, + "value": "214" + }, + { + "begin": 1531, + "end": 1542, + "name": "PUSH [tag]", + "source": 0, + "value": "151" + }, + { + "begin": 1531, + "end": 1544, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1531, + "end": 1544, + "name": "tag", + "source": 0, + "value": "214" + }, + { + "begin": 1531, + "end": 1544, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2647, + "end": 2648, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2627, + "end": 2649, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2627, + "end": 2649, + "modifierDepth": 1, + "name": "AND", + "source": 0 + }, + { + "begin": 2627, + "end": 2635, + "modifierDepth": 1, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2627, + "end": 2649, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2627, + "end": 2649, + "modifierDepth": 1, + "name": "AND", + "source": 0 + }, + { + "begin": 2627, + "end": 2649, + "name": "SUB", + "source": 0 + }, + { + "begin": 2623, + "end": 2714, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "216" + }, + { + "begin": 2623, + "end": 2714, + "modifierDepth": 1, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 2700, + "end": 2701, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "1E4FBDF700000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "ADD", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "217" + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "43" + }, + { + "begin": 2672, + "end": 2703, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "217" + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "SUB", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2672, + "end": 2703, + "modifierDepth": 1, + "name": "REVERT", + "source": 0 + }, + { + "begin": 2623, + "end": 2714, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "216" + }, + { + "begin": 2623, + "end": 2714, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2723, + "end": 2751, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "218" + }, + { + "begin": 2742, + "end": 2750, + "modifierDepth": 1, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2723, + "end": 2741, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "188" + }, + { + "begin": 2723, + "end": 2751, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 0 + }, + { + "begin": 2723, + "end": 2751, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "218" + }, + { + "begin": 2723, + "end": 2751, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "name": "POP", + "source": 0 + }, + { + "begin": 2543, + "end": 2758, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 937, + "end": 1144, + "name": "tag", + "source": 9, + "value": "116" + }, + { + "begin": 937, + "end": 1144, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1039, + "end": 1043, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 760, + "end": 770, + "name": "PUSH", + "source": 9, + "value": "49064906" + }, + { + "begin": 753, + "end": 771, + "name": "PUSH", + "source": 9, + "value": "E0" + }, + { + "begin": 753, + "end": 771, + "name": "SHL", + "source": 9 + }, + { + "begin": 1062, + "end": 1097, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1062, + "end": 1097, + "name": "NOT", + "source": 9 + }, + { + "begin": 1062, + "end": 1097, + "name": "AND", + "source": 9 + }, + { + "begin": 1062, + "end": 1073, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1062, + "end": 1097, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1062, + "end": 1097, + "name": "NOT", + "source": 9 + }, + { + "begin": 1062, + "end": 1097, + "name": "AND", + "source": 9 + }, + { + "begin": 1062, + "end": 1097, + "name": "EQ", + "source": 9 + }, + { + "begin": 1062, + "end": 1137, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1062, + "end": 1137, + "name": "PUSH [tag]", + "source": 9, + "value": "220" + }, + { + "begin": 1062, + "end": 1137, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1062, + "end": 1137, + "name": "POP", + "source": 9 + }, + { + "begin": 1101, + "end": 1137, + "name": "PUSH [tag]", + "source": 9, + "value": "221" + }, + { + "begin": 1125, + "end": 1136, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1101, + "end": 1124, + "name": "PUSH [tag]", + "source": 9, + "value": "222" + }, + { + "begin": 1101, + "end": 1137, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1101, + "end": 1137, + "name": "tag", + "source": 9, + "value": "221" + }, + { + "begin": 1101, + "end": 1137, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1062, + "end": 1137, + "name": "tag", + "source": 9, + "value": "220" + }, + { + "begin": 1062, + "end": 1137, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1055, + "end": 1137, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1055, + "end": 1137, + "name": "POP", + "source": 9 + }, + { + "begin": 937, + "end": 1144, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 937, + "end": 1144, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 937, + "end": 1144, + "name": "POP", + "source": 9 + }, + { + "begin": 937, + "end": 1144, + "jumpType": "[out]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 16138, + "end": 16379, + "name": "tag", + "source": 5, + "value": "126" + }, + { + "begin": 16138, + "end": 16379, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 16201, + "end": 16208, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 16220, + "end": 16233, + "name": "DUP1", + "source": 5 + }, + { + "begin": 16236, + "end": 16253, + "name": "PUSH [tag]", + "source": 5, + "value": "224" + }, + { + "begin": 16245, + "end": 16252, + "name": "DUP4", + "source": 5 + }, + { + "begin": 16236, + "end": 16244, + "name": "PUSH [tag]", + "source": 5, + "value": "225" + }, + { + "begin": 16236, + "end": 16253, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 16236, + "end": 16253, + "name": "tag", + "source": 5, + "value": "224" + }, + { + "begin": 16236, + "end": 16253, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 16220, + "end": 16253, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 16220, + "end": 16253, + "name": "POP", + "source": 5 + }, + { + "begin": 16284, + "end": 16285, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 16267, + "end": 16286, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 16267, + "end": 16286, + "name": "AND", + "source": 5 + }, + { + "begin": 16267, + "end": 16272, + "name": "DUP2", + "source": 5 + }, + { + "begin": 16267, + "end": 16286, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 16267, + "end": 16286, + "name": "AND", + "source": 5 + }, + { + "begin": 16267, + "end": 16286, + "name": "SUB", + "source": 5 + }, + { + "begin": 16263, + "end": 16351, + "name": "PUSH [tag]", + "source": 5, + "value": "226" + }, + { + "begin": 16263, + "end": 16351, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 16332, + "end": 16339, + "name": "DUP3", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 16309, + "end": 16340, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "PUSH", + "source": 5, + "value": "7E27328900000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 16309, + "end": 16340, + "name": "DUP2", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 16309, + "end": 16340, + "name": "ADD", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "PUSH [tag]", + "source": 5, + "value": "227" + }, + { + "begin": 16309, + "end": 16340, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "PUSH [tag]", + "source": 5, + "value": "51" + }, + { + "begin": 16309, + "end": 16340, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "tag", + "source": 5, + "value": "227" + }, + { + "begin": 16309, + "end": 16340, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 16309, + "end": 16340, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "DUP1", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "SUB", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 16309, + "end": 16340, + "name": "REVERT", + "source": 5 + }, + { + "begin": 16263, + "end": 16351, + "name": "tag", + "source": 5, + "value": "226" + }, + { + "begin": 16263, + "end": 16351, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 16367, + "end": 16372, + "name": "DUP1", + "source": 5 + }, + { + "begin": 16360, + "end": 16372, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 16360, + "end": 16372, + "name": "POP", + "source": 5 + }, + { + "begin": 16360, + "end": 16372, + "name": "POP", + "source": 5 + }, + { + "begin": 16138, + "end": 16379, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 16138, + "end": 16379, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 16138, + "end": 16379, + "name": "POP", + "source": 5 + }, + { + "begin": 16138, + "end": 16379, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 5938, + "end": 6065, + "name": "tag", + "source": 5, + "value": "128" + }, + { + "begin": 5938, + "end": 6065, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 6008, + "end": 6015, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 6034, + "end": 6049, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 6034, + "end": 6058, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 6050, + "end": 6057, + "name": "DUP4", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "DUP2", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 6034, + "end": 6058, + "name": "ADD", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "DUP2", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 6034, + "end": 6058, + "name": "ADD", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 6034, + "end": 6058, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 6034, + "end": 6058, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 6034, + "end": 6058, + "name": "EXP", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "DIV", + "source": 5 + }, + { + "begin": 6034, + "end": 6058, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6034, + "end": 6058, + "name": "AND", + "source": 5 + }, + { + "begin": 6027, + "end": 6058, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 6027, + "end": 6058, + "name": "POP", + "source": 5 + }, + { + "begin": 5938, + "end": 6065, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 5938, + "end": 6065, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 5938, + "end": 6065, + "name": "POP", + "source": 5 + }, + { + "begin": 5938, + "end": 6065, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 656, + "end": 752, + "name": "tag", + "source": 12, + "value": "132" + }, + { + "begin": 656, + "end": 752, + "name": "JUMPDEST", + "source": 12 + }, + { + "begin": 709, + "end": 716, + "name": "PUSH", + "source": 12, + "value": "0" + }, + { + "begin": 735, + "end": 745, + "name": "CALLER", + "source": 12 + }, + { + "begin": 728, + "end": 745, + "name": "SWAP1", + "source": 12 + }, + { + "begin": 728, + "end": 745, + "name": "POP", + "source": 12 + }, + { + "begin": 656, + "end": 752, + "name": "SWAP1", + "source": 12 + }, + { + "begin": 656, + "end": 752, + "jumpType": "[out]", + "name": "JUMP", + "source": 12 + }, + { + "begin": 14418, + "end": 14538, + "name": "tag", + "source": 5, + "value": "133" + }, + { + "begin": 14418, + "end": 14538, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 14498, + "end": 14531, + "name": "PUSH [tag]", + "source": 5, + "value": "231" + }, + { + "begin": 14507, + "end": 14509, + "name": "DUP4", + "source": 5 + }, + { + "begin": 14511, + "end": 14518, + "name": "DUP4", + "source": 5 + }, + { + "begin": 14520, + "end": 14524, + "name": "DUP4", + "source": 5 + }, + { + "begin": 14526, + "end": 14530, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 14498, + "end": 14506, + "name": "PUSH [tag]", + "source": 5, + "value": "232" + }, + { + "begin": 14498, + "end": 14531, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 14498, + "end": 14531, + "name": "tag", + "source": 5, + "value": "231" + }, + { + "begin": 14498, + "end": 14531, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 14418, + "end": 14538, + "name": "POP", + "source": 5 + }, + { + "begin": 14418, + "end": 14538, + "name": "POP", + "source": 5 + }, + { + "begin": 14418, + "end": 14538, + "name": "POP", + "source": 5 + }, + { + "begin": 14418, + "end": 14538, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1449, + "end": 1657, + "name": "tag", + "source": 18, + "value": "140" + }, + { + "begin": 1449, + "end": 1657, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1592, + "end": 1599, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 1618, + "end": 1650, + "name": "PUSH [tag]", + "source": 18, + "value": "234" + }, + { + "begin": 1632, + "end": 1634, + "name": "DUP5", + "source": 18 + }, + { + "begin": 1636, + "end": 1643, + "name": "DUP5", + "source": 18 + }, + { + "begin": 1645, + "end": 1649, + "name": "DUP5", + "source": 18 + }, + { + "begin": 1618, + "end": 1631, + "name": "PUSH [tag]", + "source": 18, + "value": "235" + }, + { + "begin": 1618, + "end": 1650, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1618, + "end": 1650, + "name": "tag", + "source": 18, + "value": "234" + }, + { + "begin": 1618, + "end": 1650, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1611, + "end": 1650, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1611, + "end": 1650, + "name": "POP", + "source": 18 + }, + { + "begin": 1449, + "end": 1657, + "name": "SWAP4", + "source": 18 + }, + { + "begin": 1449, + "end": 1657, + "name": "SWAP3", + "source": 18 + }, + { + "begin": 1449, + "end": 1657, + "name": "POP", + "source": 18 + }, + { + "begin": 1449, + "end": 1657, + "name": "POP", + "source": 18 + }, + { + "begin": 1449, + "end": 1657, + "name": "POP", + "source": 18 + }, + { + "begin": 1449, + "end": 1657, + "jumpType": "[out]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1796, + "end": 1958, + "name": "tag", + "source": 0, + "value": "151" + }, + { + "begin": 1796, + "end": 1958, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1866, + "end": 1878, + "name": "PUSH [tag]", + "source": 0, + "value": "237" + }, + { + "begin": 1866, + "end": 1876, + "name": "PUSH [tag]", + "source": 0, + "value": "132" + }, + { + "begin": 1866, + "end": 1878, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1866, + "end": 1878, + "name": "tag", + "source": 0, + "value": "237" + }, + { + "begin": 1866, + "end": 1878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1855, + "end": 1878, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1855, + "end": 1878, + "name": "AND", + "source": 0 + }, + { + "begin": 1855, + "end": 1862, + "name": "PUSH [tag]", + "source": 0, + "value": "238" + }, + { + "begin": 1855, + "end": 1860, + "name": "PUSH [tag]", + "source": 0, + "value": "89" + }, + { + "begin": 1855, + "end": 1862, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1855, + "end": 1862, + "name": "tag", + "source": 0, + "value": "238" + }, + { + "begin": 1855, + "end": 1862, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1855, + "end": 1878, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1855, + "end": 1878, + "name": "AND", + "source": 0 + }, + { + "begin": 1855, + "end": 1878, + "name": "EQ", + "source": 0 + }, + { + "begin": 1851, + "end": 1952, + "name": "PUSH [tag]", + "source": 0, + "value": "239" + }, + { + "begin": 1851, + "end": 1952, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1928, + "end": 1940, + "name": "PUSH [tag]", + "source": 0, + "value": "240" + }, + { + "begin": 1928, + "end": 1938, + "name": "PUSH [tag]", + "source": 0, + "value": "132" + }, + { + "begin": 1928, + "end": 1940, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1928, + "end": 1940, + "name": "tag", + "source": 0, + "value": "240" + }, + { + "begin": 1928, + "end": 1940, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1901, + "end": 1941, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "PUSH", + "source": 0, + "value": "118CDAA700000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1901, + "end": 1941, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 1901, + "end": 1941, + "name": "ADD", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "PUSH [tag]", + "source": 0, + "value": "241" + }, + { + "begin": 1901, + "end": 1941, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "PUSH [tag]", + "source": 0, + "value": "43" + }, + { + "begin": 1901, + "end": 1941, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "tag", + "source": 0, + "value": "241" + }, + { + "begin": 1901, + "end": 1941, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1901, + "end": 1941, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "SUB", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1901, + "end": 1941, + "name": "REVERT", + "source": 0 + }, + { + "begin": 1851, + "end": 1952, + "name": "tag", + "source": 0, + "value": "239" + }, + { + "begin": 1851, + "end": 1952, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1796, + "end": 1958, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 10633, + "end": 10733, + "name": "tag", + "source": 5, + "value": "156" + }, + { + "begin": 10633, + "end": 10733, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "PUSH [tag]", + "source": 5, + "value": "243" + }, + { + "begin": 10710, + "end": 10712, + "name": "DUP3", + "source": 5 + }, + { + "begin": 10714, + "end": 10721, + "name": "DUP3", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 10700, + "end": 10726, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "DUP1", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 10700, + "end": 10726, + "name": "ADD", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 10700, + "end": 10726, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "DUP1", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 10700, + "end": 10726, + "name": "DUP2", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "POP", + "source": 5 + }, + { + "begin": 10700, + "end": 10709, + "name": "PUSH [tag]", + "source": 5, + "value": "244" + }, + { + "begin": 10700, + "end": 10726, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 10700, + "end": 10726, + "name": "tag", + "source": 5, + "value": "243" + }, + { + "begin": 10700, + "end": 10726, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10633, + "end": 10733, + "name": "POP", + "source": 5 + }, + { + "begin": 10633, + "end": 10733, + "name": "POP", + "source": 5 + }, + { + "begin": 10633, + "end": 10733, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 637, + "end": 1335, + "name": "tag", + "source": 13, + "value": "159" + }, + { + "begin": 637, + "end": 1335, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 693, + "end": 706, + "name": "PUSH", + "source": 13, + "value": "60" + }, + { + "begin": 742, + "end": 756, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 779, + "end": 780, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 759, + "end": 776, + "name": "PUSH [tag]", + "source": 13, + "value": "246" + }, + { + "begin": 770, + "end": 775, + "name": "DUP5", + "source": 13 + }, + { + "begin": 759, + "end": 769, + "name": "PUSH [tag]", + "source": 13, + "value": "247" + }, + { + "begin": 759, + "end": 776, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 759, + "end": 776, + "name": "tag", + "source": 13, + "value": "246" + }, + { + "begin": 759, + "end": 776, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 759, + "end": 780, + "name": "ADD", + "source": 13 + }, + { + "begin": 742, + "end": 780, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 742, + "end": 780, + "name": "POP", + "source": 13 + }, + { + "begin": 794, + "end": 814, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 828, + "end": 834, + "name": "DUP2", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 817, + "end": 835, + "name": "DUP2", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "GT", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH [tag]", + "source": 13, + "value": "248" + }, + { + "begin": 817, + "end": 835, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH [tag]", + "source": 13, + "value": "249" + }, + { + "begin": 817, + "end": 835, + "name": "PUSH [tag]", + "source": 13, + "value": "250" + }, + { + "begin": 817, + "end": 835, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "tag", + "source": 13, + "value": "249" + }, + { + "begin": 817, + "end": 835, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "tag", + "source": 13, + "value": "248" + }, + { + "begin": 817, + "end": 835, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 817, + "end": 835, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP1", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP3", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP1", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 817, + "end": 835, + "name": "ADD", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 817, + "end": 835, + "name": "NOT", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "AND", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 817, + "end": 835, + "name": "ADD", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP3", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "ADD", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 817, + "end": 835, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP1", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH [tag]", + "source": 13, + "value": "251" + }, + { + "begin": 817, + "end": 835, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP2", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 817, + "end": 835, + "name": "ADD", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 817, + "end": 835, + "name": "DUP3", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "MUL", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP1", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP4", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "CALLDATACOPY", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP1", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "DUP3", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "ADD", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "POP", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "POP", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "POP", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "tag", + "source": 13, + "value": "251" + }, + { + "begin": 817, + "end": 835, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 817, + "end": 835, + "name": "POP", + "source": 13 + }, + { + "begin": 794, + "end": 835, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 794, + "end": 835, + "name": "POP", + "source": 13 + }, + { + "begin": 849, + "end": 860, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 975, + "end": 981, + "name": "DUP3", + "source": 13 + }, + { + "begin": 971, + "end": 973, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 967, + "end": 982, + "name": "ADD", + "source": 13 + }, + { + "begin": 959, + "end": 965, + "name": "DUP3", + "source": 13 + }, + { + "begin": 955, + "end": 983, + "name": "ADD", + "source": 13 + }, + { + "begin": 948, + "end": 983, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 948, + "end": 983, + "name": "POP", + "source": 13 + }, + { + "begin": 1010, + "end": 1292, + "name": "tag", + "source": 13, + "value": "252" + }, + { + "begin": 1010, + "end": 1292, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1017, + "end": 1021, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 1010, + "end": 1292, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 1010, + "end": 1292, + "name": "PUSH [tag]", + "source": 13, + "value": "253" + }, + { + "begin": 1010, + "end": 1292, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1041, + "end": 1046, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1041, + "end": 1046, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1041, + "end": 1046, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 1041, + "end": 1046, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 1041, + "end": 1046, + "name": "SUB", + "source": 13 + }, + { + "begin": 1041, + "end": 1046, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 1041, + "end": 1046, + "name": "POP", + "source": 13 + }, + { + "begin": 1041, + "end": 1046, + "name": "POP", + "source": 13 + }, + { + "begin": 1180, + "end": 1190, + "name": "PUSH", + "source": 13, + "value": "3031323334353637383961626364656600000000000000000000000000000000" + }, + { + "begin": 1175, + "end": 1177, + "name": "PUSH", + "source": 13, + "value": "A" + }, + { + "begin": 1168, + "end": 1173, + "name": "DUP7", + "source": 13 + }, + { + "begin": 1164, + "end": 1178, + "name": "MOD", + "source": 13 + }, + { + "begin": 1159, + "end": 1191, + "name": "BYTE", + "source": 13 + }, + { + "begin": 1154, + "end": 1157, + "name": "DUP2", + "source": 13 + }, + { + "begin": 1146, + "end": 1192, + "name": "MSTORE8", + "source": 13 + }, + { + "begin": 1236, + "end": 1238, + "name": "PUSH", + "source": 13, + "value": "A" + }, + { + "begin": 1227, + "end": 1238, + "name": "DUP6", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "DUP2", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "PUSH [tag]", + "source": 13, + "value": "254" + }, + { + "begin": 1227, + "end": 1238, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "PUSH [tag]", + "source": 13, + "value": "255" + }, + { + "begin": 1227, + "end": 1238, + "name": "PUSH [tag]", + "source": 13, + "value": "256" + }, + { + "begin": 1227, + "end": 1238, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "tag", + "source": 13, + "value": "255" + }, + { + "begin": 1227, + "end": 1238, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "tag", + "source": 13, + "value": "254" + }, + { + "begin": 1227, + "end": 1238, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "DIV", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "SWAP5", + "source": 13 + }, + { + "begin": 1227, + "end": 1238, + "name": "POP", + "source": 13 + }, + { + "begin": 1269, + "end": 1270, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 1260, + "end": 1265, + "name": "DUP6", + "source": 13 + }, + { + "begin": 1260, + "end": 1270, + "name": "SUB", + "source": 13 + }, + { + "begin": 1010, + "end": 1292, + "name": "PUSH [tag]", + "source": 13, + "value": "252" + }, + { + "begin": 1256, + "end": 1277, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1010, + "end": 1292, + "name": "tag", + "source": 13, + "value": "253" + }, + { + "begin": 1010, + "end": 1292, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1312, + "end": 1318, + "name": "DUP2", + "source": 13 + }, + { + "begin": 1305, + "end": 1318, + "name": "SWAP4", + "source": 13 + }, + { + "begin": 1305, + "end": 1318, + "name": "POP", + "source": 13 + }, + { + "begin": 1305, + "end": 1318, + "name": "POP", + "source": 13 + }, + { + "begin": 1305, + "end": 1318, + "name": "POP", + "source": 13 + }, + { + "begin": 1305, + "end": 1318, + "name": "POP", + "source": 13 + }, + { + "begin": 637, + "end": 1335, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 637, + "end": 1335, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 637, + "end": 1335, + "name": "POP", + "source": 13 + }, + { + "begin": 637, + "end": 1335, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 1922, + "end": 2089, + "name": "tag", + "source": 9, + "value": "162" + }, + { + "begin": 1922, + "end": 2089, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 2035, + "end": 2044, + "name": "DUP1", + "source": 9 + }, + { + "begin": 2013, + "end": 2023, + "name": "PUSH", + "source": 9, + "value": "A" + }, + { + "begin": 2013, + "end": 2032, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 2024, + "end": 2031, + "name": "DUP5", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "DUP2", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 2013, + "end": 2032, + "name": "ADD", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "DUP2", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 2013, + "end": 2032, + "name": "ADD", + "source": 9 + }, + { + "begin": 2013, + "end": 2032, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 2013, + "end": 2032, + "name": "KECCAK256", + "source": 9 + }, + { + "begin": 2013, + "end": 2044, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2013, + "end": 2044, + "name": "DUP2", + "source": 9 + }, + { + "begin": 2013, + "end": 2044, + "name": "PUSH [tag]", + "source": 9, + "value": "259" + }, + { + "begin": 2013, + "end": 2044, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 2013, + "end": 2044, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2013, + "end": 2044, + "name": "PUSH [tag]", + "source": 9, + "value": "177" + }, + { + "begin": 2013, + "end": 2044, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 2013, + "end": 2044, + "name": "tag", + "source": 9, + "value": "259" + }, + { + "begin": 2013, + "end": 2044, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 2013, + "end": 2044, + "name": "POP", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "PUSH", + "source": 9, + "value": "F8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7" + }, + { + "begin": 2074, + "end": 2081, + "name": "DUP3", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 2059, + "end": 2082, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "PUSH [tag]", + "source": 9, + "value": "260" + }, + { + "begin": 2059, + "end": 2082, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "PUSH [tag]", + "source": 9, + "value": "51" + }, + { + "begin": 2059, + "end": 2082, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "tag", + "source": 9, + "value": "260" + }, + { + "begin": 2059, + "end": 2082, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 2059, + "end": 2082, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "DUP1", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "SUB", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2059, + "end": 2082, + "name": "LOG1", + "source": 9 + }, + { + "begin": 1922, + "end": 2089, + "name": "POP", + "source": 9 + }, + { + "begin": 1922, + "end": 2089, + "name": "POP", + "source": 9 + }, + { + "begin": 1922, + "end": 2089, + "jumpType": "[out]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 2912, + "end": 3099, + "name": "tag", + "source": 0, + "value": "188" + }, + { + "begin": 2912, + "end": 3099, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2985, + "end": 3001, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "B" + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3004, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 3004, + "end": 3010, + "name": "EXP", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "DIV", + "source": 0 + }, + { + "begin": 3004, + "end": 3010, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3004, + "end": 3010, + "name": "AND", + "source": 0 + }, + { + "begin": 2985, + "end": 3010, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2985, + "end": 3010, + "name": "POP", + "source": 0 + }, + { + "begin": 3029, + "end": 3037, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3020, + "end": 3026, + "name": "PUSH", + "source": 0, + "value": "B" + }, + { + "begin": 3020, + "end": 3026, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3020, + "end": 3037, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 3020, + "end": 3037, + "name": "EXP", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3020, + "end": 3037, + "name": "MUL", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "NOT", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "AND", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "DUP4", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3020, + "end": 3037, + "name": "AND", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "MUL", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "OR", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 3020, + "end": 3037, + "name": "POP", + "source": 0 + }, + { + "begin": 3083, + "end": 3091, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3052, + "end": 3092, + "name": "AND", + "source": 0 + }, + { + "begin": 3073, + "end": 3081, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3052, + "end": 3092, + "name": "AND", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0" + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3052, + "end": 3092, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3052, + "end": 3092, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "SUB", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3052, + "end": 3092, + "name": "LOG3", + "source": 0 + }, + { + "begin": 2975, + "end": 3099, + "name": "POP", + "source": 0 + }, + { + "begin": 2912, + "end": 3099, + "name": "POP", + "source": 0 + }, + { + "begin": 2912, + "end": 3099, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 15591, + "end": 15903, + "name": "tag", + "source": 5, + "value": "199" + }, + { + "begin": 15591, + "end": 15903, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15718, + "end": 15719, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15698, + "end": 15720, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15698, + "end": 15720, + "name": "AND", + "source": 5 + }, + { + "begin": 15698, + "end": 15706, + "name": "DUP3", + "source": 5 + }, + { + "begin": 15698, + "end": 15720, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15698, + "end": 15720, + "name": "AND", + "source": 5 + }, + { + "begin": 15698, + "end": 15720, + "name": "SUB", + "source": 5 + }, + { + "begin": 15694, + "end": 15785, + "name": "PUSH [tag]", + "source": 5, + "value": "263" + }, + { + "begin": 15694, + "end": 15785, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 15765, + "end": 15773, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15743, + "end": 15774, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "PUSH", + "source": 5, + "value": "5B08BA1800000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 15743, + "end": 15774, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 15743, + "end": 15774, + "name": "ADD", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "PUSH [tag]", + "source": 5, + "value": "264" + }, + { + "begin": 15743, + "end": 15774, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 15743, + "end": 15774, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "tag", + "source": 5, + "value": "264" + }, + { + "begin": 15743, + "end": 15774, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15743, + "end": 15774, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "DUP1", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "SUB", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15743, + "end": 15774, + "name": "REVERT", + "source": 5 + }, + { + "begin": 15694, + "end": 15785, + "name": "tag", + "source": 5, + "value": "263" + }, + { + "begin": 15694, + "end": 15785, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15832, + "end": 15840, + "name": "DUP1", + "source": 5 + }, + { + "begin": 15794, + "end": 15812, + "name": "PUSH", + "source": 5, + "value": "5" + }, + { + "begin": 15794, + "end": 15819, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15813, + "end": 15818, + "name": "DUP6", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15794, + "end": 15819, + "name": "AND", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15794, + "end": 15819, + "name": "AND", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 15794, + "end": 15819, + "name": "ADD", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 15794, + "end": 15819, + "name": "ADD", + "source": 5 + }, + { + "begin": 15794, + "end": 15819, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15794, + "end": 15819, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15820, + "end": 15828, + "name": "DUP5", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15794, + "end": 15829, + "name": "AND", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15794, + "end": 15829, + "name": "AND", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 15794, + "end": 15829, + "name": "ADD", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 15794, + "end": 15829, + "name": "ADD", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15794, + "end": 15829, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 15794, + "end": 15829, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15794, + "end": 15840, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 15794, + "end": 15840, + "name": "EXP", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "PUSH", + "source": 5, + "value": "FF" + }, + { + "begin": 15794, + "end": 15840, + "name": "MUL", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "NOT", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "AND", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "DUP4", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "MUL", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "OR", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "SSTORE", + "source": 5 + }, + { + "begin": 15794, + "end": 15840, + "name": "POP", + "source": 5 + }, + { + "begin": 15877, + "end": 15885, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15855, + "end": 15896, + "name": "AND", + "source": 5 + }, + { + "begin": 15870, + "end": 15875, + "name": "DUP4", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15855, + "end": 15896, + "name": "AND", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "PUSH", + "source": 5, + "value": "17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31" + }, + { + "begin": 15887, + "end": 15895, + "name": "DUP4", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15855, + "end": 15896, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "PUSH [tag]", + "source": 5, + "value": "265" + }, + { + "begin": 15855, + "end": 15896, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "PUSH [tag]", + "source": 5, + "value": "33" + }, + { + "begin": 15855, + "end": 15896, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "tag", + "source": 5, + "value": "265" + }, + { + "begin": 15855, + "end": 15896, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15855, + "end": 15896, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "DUP1", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "SUB", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15855, + "end": 15896, + "name": "LOG3", + "source": 5 + }, + { + "begin": 15591, + "end": 15903, + "name": "POP", + "source": 5 + }, + { + "begin": 15591, + "end": 15903, + "name": "POP", + "source": 5 + }, + { + "begin": 15591, + "end": 15903, + "name": "POP", + "source": 5 + }, + { + "begin": 15591, + "end": 15903, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 16918, + "end": 17700, + "name": "tag", + "source": 5, + "value": "203" + }, + { + "begin": 16918, + "end": 17700, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17051, + "end": 17052, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 17034, + "end": 17036, + "name": "DUP4", + "source": 5 + }, + { + "begin": 17034, + "end": 17048, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 17034, + "end": 17048, + "name": "AND", + "source": 5 + }, + { + "begin": 17034, + "end": 17048, + "name": "EXTCODESIZE", + "source": 5 + }, + { + "begin": 17034, + "end": 17052, + "name": "GT", + "source": 5 + }, + { + "begin": 17030, + "end": 17694, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 17030, + "end": 17694, + "name": "PUSH [tag]", + "source": 5, + "value": "267" + }, + { + "begin": 17030, + "end": 17694, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 17088, + "end": 17090, + "name": "DUP3", + "source": 5 + }, + { + "begin": 17072, + "end": 17108, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 17072, + "end": 17108, + "name": "AND", + "source": 5 + }, + { + "begin": 17072, + "end": 17108, + "name": "PUSH", + "source": 5, + "value": "150B7A02" + }, + { + "begin": 17109, + "end": 17121, + "name": "PUSH [tag]", + "source": 5, + "value": "268" + }, + { + "begin": 17109, + "end": 17119, + "name": "PUSH [tag]", + "source": 5, + "value": "132" + }, + { + "begin": 17109, + "end": 17121, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 17109, + "end": 17121, + "name": "tag", + "source": 5, + "value": "268" + }, + { + "begin": 17109, + "end": 17121, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17123, + "end": 17127, + "name": "DUP7", + "source": 5 + }, + { + "begin": 17129, + "end": 17136, + "name": "DUP6", + "source": 5 + }, + { + "begin": 17138, + "end": 17142, + "name": "DUP6", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17072, + "end": 17143, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP6", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFF" + }, + { + "begin": 17072, + "end": 17143, + "name": "AND", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "E0" + }, + { + "begin": 17072, + "end": 17143, + "name": "SHL", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 17072, + "end": 17143, + "name": "ADD", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH [tag]", + "source": 5, + "value": "269" + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP5", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP4", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH [tag]", + "source": 5, + "value": "270" + }, + { + "begin": 17072, + "end": 17143, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "tag", + "source": 5, + "value": "269" + }, + { + "begin": 17072, + "end": 17143, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17072, + "end": 17143, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP1", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP4", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SUB", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP8", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "GAS", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "CALL", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "POP", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "POP", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "POP", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP1", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH [tag]", + "source": 5, + "value": "271" + }, + { + "begin": 17072, + "end": 17143, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "POP", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17072, + "end": 17143, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "RETURNDATASIZE", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 17072, + "end": 17143, + "name": "NOT", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP3", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "ADD", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "AND", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP3", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "ADD", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP1", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17072, + "end": 17143, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "POP", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "ADD", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH [tag]", + "source": 5, + "value": "272" + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH [tag]", + "source": 5, + "value": "273" + }, + { + "begin": 17072, + "end": 17143, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "tag", + "source": 5, + "value": "272" + }, + { + "begin": 17072, + "end": 17143, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17072, + "end": 17143, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 17072, + "end": 17143, + "name": "tag", + "source": 5, + "value": "271" + }, + { + "begin": 17072, + "end": 17143, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH [tag]", + "source": 5, + "value": "274" + }, + { + "begin": 17068, + "end": 17684, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "RETURNDATASIZE", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "DUP1", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 17068, + "end": 17684, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "EQ", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH [tag]", + "source": 5, + "value": "279" + }, + { + "begin": 17068, + "end": 17684, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17068, + "end": 17684, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "POP", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "1F" + }, + { + "begin": 17068, + "end": 17684, + "name": "NOT", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "3F" + }, + { + "begin": 17068, + "end": 17684, + "name": "RETURNDATASIZE", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "ADD", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "AND", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "DUP3", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "ADD", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17068, + "end": 17684, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "RETURNDATASIZE", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "DUP3", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "RETURNDATASIZE", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 17068, + "end": 17684, + "name": "DUP5", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "ADD", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "RETURNDATACOPY", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH [tag]", + "source": 5, + "value": "278" + }, + { + "begin": 17068, + "end": 17684, + "name": "JUMP", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "tag", + "source": 5, + "value": "279" + }, + { + "begin": 17068, + "end": 17684, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "PUSH", + "source": 5, + "value": "60" + }, + { + "begin": 17068, + "end": 17684, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "POP", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "tag", + "source": 5, + "value": "278" + }, + { + "begin": 17068, + "end": 17684, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "POP", + "source": 5 + }, + { + "begin": 17398, + "end": 17399, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 17381, + "end": 17387, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17381, + "end": 17394, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17381, + "end": 17399, + "name": "SUB", + "source": 5 + }, + { + "begin": 17377, + "end": 17670, + "name": "PUSH [tag]", + "source": 5, + "value": "280" + }, + { + "begin": 17377, + "end": 17670, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 17452, + "end": 17454, + "name": "DUP4", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17430, + "end": 17455, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "PUSH", + "source": 5, + "value": "64A0AE9200000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 17430, + "end": 17455, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 17430, + "end": 17455, + "name": "ADD", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "PUSH [tag]", + "source": 5, + "value": "281" + }, + { + "begin": 17430, + "end": 17455, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 17430, + "end": 17455, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "tag", + "source": 5, + "value": "281" + }, + { + "begin": 17430, + "end": 17455, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17430, + "end": 17455, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "DUP1", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "SUB", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 17430, + "end": 17455, + "name": "REVERT", + "source": 5 + }, + { + "begin": 17377, + "end": 17670, + "name": "tag", + "source": 5, + "value": "280" + }, + { + "begin": 17377, + "end": 17670, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17622, + "end": 17628, + "name": "DUP1", + "source": 5 + }, + { + "begin": 17616, + "end": 17629, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17607, + "end": 17613, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17603, + "end": 17605, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 17599, + "end": 17614, + "name": "ADD", + "source": 5 + }, + { + "begin": 17592, + "end": 17630, + "name": "REVERT", + "source": 5 + }, + { + "begin": 17068, + "end": 17684, + "name": "tag", + "source": 5, + "value": "274" + }, + { + "begin": 17068, + "end": 17684, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17200, + "end": 17241, + "name": "PUSH", + "source": 5, + "value": "150B7A02" + }, + { + "begin": 17200, + "end": 17241, + "name": "PUSH", + "source": 5, + "value": "E0" + }, + { + "begin": 17200, + "end": 17241, + "name": "SHL", + "source": 5 + }, + { + "begin": 17190, + "end": 17241, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 17190, + "end": 17241, + "name": "NOT", + "source": 5 + }, + { + "begin": 17190, + "end": 17241, + "name": "AND", + "source": 5 + }, + { + "begin": 17190, + "end": 17196, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17190, + "end": 17241, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 17190, + "end": 17241, + "name": "NOT", + "source": 5 + }, + { + "begin": 17190, + "end": 17241, + "name": "AND", + "source": 5 + }, + { + "begin": 17190, + "end": 17241, + "name": "EQ", + "source": 5 + }, + { + "begin": 17186, + "end": 17316, + "name": "PUSH [tag]", + "source": 5, + "value": "284" + }, + { + "begin": 17186, + "end": 17316, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 17294, + "end": 17296, + "name": "DUP4", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17272, + "end": 17297, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "PUSH", + "source": 5, + "value": "64A0AE9200000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 17272, + "end": 17297, + "name": "DUP2", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 17272, + "end": 17297, + "name": "ADD", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "PUSH [tag]", + "source": 5, + "value": "285" + }, + { + "begin": 17272, + "end": 17297, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 17272, + "end": 17297, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "tag", + "source": 5, + "value": "285" + }, + { + "begin": 17272, + "end": 17297, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 17272, + "end": 17297, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "DUP1", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "SUB", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 17272, + "end": 17297, + "name": "REVERT", + "source": 5 + }, + { + "begin": 17186, + "end": 17316, + "name": "tag", + "source": 5, + "value": "284" + }, + { + "begin": 17186, + "end": 17316, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 17144, + "end": 17330, + "name": "POP", + "source": 5 + }, + { + "begin": 17030, + "end": 17694, + "name": "tag", + "source": 5, + "value": "267" + }, + { + "begin": 17030, + "end": 17694, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 16918, + "end": 17700, + "name": "POP", + "source": 5 + }, + { + "begin": 16918, + "end": 17700, + "name": "POP", + "source": 5 + }, + { + "begin": 16918, + "end": 17700, + "name": "POP", + "source": 5 + }, + { + "begin": 16918, + "end": 17700, + "name": "POP", + "source": 5 + }, + { + "begin": 16918, + "end": 17700, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1151, + "end": 1266, + "name": "tag", + "source": 18, + "value": "206" + }, + { + "begin": 1151, + "end": 1266, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1211, + "end": 1224, + "name": "PUSH", + "source": 18, + "value": "60" + }, + { + "begin": 1243, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "D" + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SLOAD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "287" + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "119" + }, + { + "begin": 1236, + "end": 1259, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "tag", + "source": 18, + "value": "287" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "1F" + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DIV", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "MUL", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1236, + "end": 1259, + "name": "MLOAD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "40" + }, + { + "begin": 1236, + "end": 1259, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP3", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP3", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SLOAD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "288" + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "119" + }, + { + "begin": 1236, + "end": 1259, + "jumpType": "[in]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "tag", + "source": 18, + "value": "288" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "ISZERO", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "289" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "1F" + }, + { + "begin": 1236, + "end": 1259, + "name": "LT", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "290" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "100" + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP4", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SLOAD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DIV", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "MUL", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP4", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "289" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "tag", + "source": 18, + "value": "290" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP3", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 1236, + "end": 1259, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "0" + }, + { + "begin": 1236, + "end": 1259, + "name": "KECCAK256", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "tag", + "source": 18, + "value": "291" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SLOAD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "MSTORE", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "1" + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "20" + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP4", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "GT", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH [tag]", + "source": 18, + "value": "291" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPI", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP3", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SUB", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "PUSH", + "source": 18, + "value": "1F" + }, + { + "begin": 1236, + "end": 1259, + "name": "AND", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "DUP3", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "ADD", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP2", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "tag", + "source": 18, + "value": "289" + }, + { + "begin": 1236, + "end": 1259, + "name": "JUMPDEST", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "POP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "POP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "POP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "POP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "POP", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1236, + "end": 1259, + "name": "POP", + "source": 18 + }, + { + "begin": 1151, + "end": 1266, + "name": "SWAP1", + "source": 18 + }, + { + "begin": 1151, + "end": 1266, + "jumpType": "[out]", + "name": "JUMP", + "source": 18 + }, + { + "begin": 1435, + "end": 1657, + "name": "tag", + "source": 8, + "value": "222" + }, + { + "begin": 1435, + "end": 1657, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1537, + "end": 1541, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 1575, + "end": 1610, + "name": "PUSH", + "source": 8, + "value": "780E9D6300000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1560, + "end": 1610, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1560, + "end": 1610, + "name": "NOT", + "source": 8 + }, + { + "begin": 1560, + "end": 1610, + "name": "AND", + "source": 8 + }, + { + "begin": 1560, + "end": 1571, + "name": "DUP3", + "source": 8 + }, + { + "begin": 1560, + "end": 1610, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1560, + "end": 1610, + "name": "NOT", + "source": 8 + }, + { + "begin": 1560, + "end": 1610, + "name": "AND", + "source": 8 + }, + { + "begin": 1560, + "end": 1610, + "name": "EQ", + "source": 8 + }, + { + "begin": 1560, + "end": 1650, + "name": "DUP1", + "source": 8 + }, + { + "begin": 1560, + "end": 1650, + "name": "PUSH [tag]", + "source": 8, + "value": "293" + }, + { + "begin": 1560, + "end": 1650, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 1560, + "end": 1650, + "name": "POP", + "source": 8 + }, + { + "begin": 1614, + "end": 1650, + "name": "PUSH [tag]", + "source": 8, + "value": "294" + }, + { + "begin": 1638, + "end": 1649, + "name": "DUP3", + "source": 8 + }, + { + "begin": 1614, + "end": 1637, + "name": "PUSH [tag]", + "source": 8, + "value": "295" + }, + { + "begin": 1614, + "end": 1650, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 1614, + "end": 1650, + "name": "tag", + "source": 8, + "value": "294" + }, + { + "begin": 1614, + "end": 1650, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1560, + "end": 1650, + "name": "tag", + "source": 8, + "value": "293" + }, + { + "begin": 1560, + "end": 1650, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 1553, + "end": 1650, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1553, + "end": 1650, + "name": "POP", + "source": 8 + }, + { + "begin": 1435, + "end": 1657, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 1435, + "end": 1657, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 1435, + "end": 1657, + "name": "POP", + "source": 8 + }, + { + "begin": 1435, + "end": 1657, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 5707, + "end": 5822, + "name": "tag", + "source": 5, + "value": "225" + }, + { + "begin": 5707, + "end": 5822, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 5773, + "end": 5780, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 5799, + "end": 5806, + "name": "PUSH", + "source": 5, + "value": "2" + }, + { + "begin": 5799, + "end": 5815, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 5807, + "end": 5814, + "name": "DUP4", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "DUP2", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 5799, + "end": 5815, + "name": "ADD", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "DUP2", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 5799, + "end": 5815, + "name": "ADD", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 5799, + "end": 5815, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 5799, + "end": 5815, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 5799, + "end": 5815, + "name": "EXP", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "DIV", + "source": 5 + }, + { + "begin": 5799, + "end": 5815, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5799, + "end": 5815, + "name": "AND", + "source": 5 + }, + { + "begin": 5792, + "end": 5815, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 5792, + "end": 5815, + "name": "POP", + "source": 5 + }, + { + "begin": 5707, + "end": 5822, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 5707, + "end": 5822, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 5707, + "end": 5822, + "name": "POP", + "source": 5 + }, + { + "begin": 5707, + "end": 5822, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 14720, + "end": 15382, + "name": "tag", + "source": 5, + "value": "232" + }, + { + "begin": 14720, + "end": 15382, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 14880, + "end": 14889, + "name": "DUP1", + "source": 5 + }, + { + "begin": 14880, + "end": 14911, + "name": "DUP1", + "source": 5 + }, + { + "begin": 14880, + "end": 14911, + "name": "PUSH [tag]", + "source": 5, + "value": "298" + }, + { + "begin": 14880, + "end": 14911, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 14880, + "end": 14911, + "name": "POP", + "source": 5 + }, + { + "begin": 14909, + "end": 14910, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 14893, + "end": 14911, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 14893, + "end": 14911, + "name": "AND", + "source": 5 + }, + { + "begin": 14893, + "end": 14897, + "name": "DUP3", + "source": 5 + }, + { + "begin": 14893, + "end": 14911, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 14893, + "end": 14911, + "name": "AND", + "source": 5 + }, + { + "begin": 14893, + "end": 14911, + "name": "EQ", + "source": 5 + }, + { + "begin": 14893, + "end": 14911, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 14880, + "end": 14911, + "name": "tag", + "source": 5, + "value": "298" + }, + { + "begin": 14880, + "end": 14911, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 14876, + "end": 15336, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 14876, + "end": 15336, + "name": "PUSH [tag]", + "source": 5, + "value": "299" + }, + { + "begin": 14876, + "end": 15336, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 14927, + "end": 14940, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 14943, + "end": 14965, + "name": "PUSH [tag]", + "source": 5, + "value": "300" + }, + { + "begin": 14957, + "end": 14964, + "name": "DUP5", + "source": 5 + }, + { + "begin": 14943, + "end": 14956, + "name": "PUSH [tag]", + "source": 5, + "value": "126" + }, + { + "begin": 14943, + "end": 14965, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 14943, + "end": 14965, + "name": "tag", + "source": 5, + "value": "300" + }, + { + "begin": 14943, + "end": 14965, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 14927, + "end": 14965, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 14927, + "end": 14965, + "name": "POP", + "source": 5 + }, + { + "begin": 15109, + "end": 15110, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15093, + "end": 15111, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15093, + "end": 15111, + "name": "AND", + "source": 5 + }, + { + "begin": 15093, + "end": 15097, + "name": "DUP4", + "source": 5 + }, + { + "begin": 15093, + "end": 15111, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15093, + "end": 15111, + "name": "AND", + "source": 5 + }, + { + "begin": 15093, + "end": 15111, + "name": "EQ", + "source": 5 + }, + { + "begin": 15093, + "end": 15111, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15093, + "end": 15128, + "name": "DUP1", + "source": 5 + }, + { + "begin": 15093, + "end": 15128, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15093, + "end": 15128, + "name": "PUSH [tag]", + "source": 5, + "value": "301" + }, + { + "begin": 15093, + "end": 15128, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 15093, + "end": 15128, + "name": "POP", + "source": 5 + }, + { + "begin": 15124, + "end": 15128, + "name": "DUP3", + "source": 5 + }, + { + "begin": 15115, + "end": 15128, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15115, + "end": 15128, + "name": "AND", + "source": 5 + }, + { + "begin": 15115, + "end": 15120, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15115, + "end": 15128, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15115, + "end": 15128, + "name": "AND", + "source": 5 + }, + { + "begin": 15115, + "end": 15128, + "name": "EQ", + "source": 5 + }, + { + "begin": 15115, + "end": 15128, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15093, + "end": 15128, + "name": "tag", + "source": 5, + "value": "301" + }, + { + "begin": 15093, + "end": 15128, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15093, + "end": 15162, + "name": "DUP1", + "source": 5 + }, + { + "begin": 15093, + "end": 15162, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15093, + "end": 15162, + "name": "PUSH [tag]", + "source": 5, + "value": "302" + }, + { + "begin": 15093, + "end": 15162, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 15093, + "end": 15162, + "name": "POP", + "source": 5 + }, + { + "begin": 15133, + "end": 15162, + "name": "PUSH [tag]", + "source": 5, + "value": "303" + }, + { + "begin": 15150, + "end": 15155, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15157, + "end": 15161, + "name": "DUP5", + "source": 5 + }, + { + "begin": 15133, + "end": 15149, + "name": "PUSH [tag]", + "source": 5, + "value": "109" + }, + { + "begin": 15133, + "end": 15162, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 15133, + "end": 15162, + "name": "tag", + "source": 5, + "value": "303" + }, + { + "begin": 15133, + "end": 15162, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15132, + "end": 15162, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15093, + "end": 15162, + "name": "tag", + "source": 5, + "value": "302" + }, + { + "begin": 15093, + "end": 15162, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15089, + "end": 15231, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15089, + "end": 15231, + "name": "PUSH [tag]", + "source": 5, + "value": "304" + }, + { + "begin": 15089, + "end": 15231, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 15211, + "end": 15215, + "name": "DUP3", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15189, + "end": 15216, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "PUSH", + "source": 5, + "value": "A9FBF51F00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 15189, + "end": 15216, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 15189, + "end": 15216, + "name": "ADD", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "PUSH [tag]", + "source": 5, + "value": "305" + }, + { + "begin": 15189, + "end": 15216, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 15189, + "end": 15216, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "tag", + "source": 5, + "value": "305" + }, + { + "begin": 15189, + "end": 15216, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15189, + "end": 15216, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "DUP1", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "SUB", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15189, + "end": 15216, + "name": "REVERT", + "source": 5 + }, + { + "begin": 15089, + "end": 15231, + "name": "tag", + "source": 5, + "value": "304" + }, + { + "begin": 15089, + "end": 15231, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15249, + "end": 15258, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15245, + "end": 15326, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 15245, + "end": 15326, + "name": "PUSH [tag]", + "source": 5, + "value": "306" + }, + { + "begin": 15245, + "end": 15326, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 15303, + "end": 15310, + "name": "DUP4", + "source": 5 + }, + { + "begin": 15299, + "end": 15301, + "name": "DUP6", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15283, + "end": 15311, + "name": "AND", + "source": 5 + }, + { + "begin": 15292, + "end": 15297, + "name": "DUP3", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15283, + "end": 15311, + "name": "AND", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "PUSH", + "source": 5, + "value": "8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925" + }, + { + "begin": 15283, + "end": 15311, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15283, + "end": 15311, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 15283, + "end": 15311, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "DUP1", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "SUB", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15283, + "end": 15311, + "name": "LOG4", + "source": 5 + }, + { + "begin": 15245, + "end": 15326, + "name": "tag", + "source": 5, + "value": "306" + }, + { + "begin": 15245, + "end": 15326, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 14913, + "end": 15336, + "name": "POP", + "source": 5 + }, + { + "begin": 14876, + "end": 15336, + "name": "tag", + "source": 5, + "value": "299" + }, + { + "begin": 14876, + "end": 15336, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 15373, + "end": 15375, + "name": "DUP4", + "source": 5 + }, + { + "begin": 15346, + "end": 15361, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 15346, + "end": 15370, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15362, + "end": 15369, + "name": "DUP6", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 15346, + "end": 15370, + "name": "ADD", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 15346, + "end": 15370, + "name": "ADD", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15346, + "end": 15370, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 15346, + "end": 15370, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 15346, + "end": 15375, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 15346, + "end": 15375, + "name": "EXP", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "DUP2", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15346, + "end": 15375, + "name": "MUL", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "NOT", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "AND", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "DUP4", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 15346, + "end": 15375, + "name": "AND", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "MUL", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "OR", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "SSTORE", + "source": 5 + }, + { + "begin": 15346, + "end": 15375, + "name": "POP", + "source": 5 + }, + { + "begin": 14720, + "end": 15382, + "name": "POP", + "source": 5 + }, + { + "begin": 14720, + "end": 15382, + "name": "POP", + "source": 5 + }, + { + "begin": 14720, + "end": 15382, + "name": "POP", + "source": 5 + }, + { + "begin": 14720, + "end": 15382, + "name": "POP", + "source": 5 + }, + { + "begin": 14720, + "end": 15382, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 2518, + "end": 3143, + "name": "tag", + "source": 8, + "value": "235" + }, + { + "begin": 2518, + "end": 3143, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2613, + "end": 2620, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2632, + "end": 2653, + "name": "DUP1", + "source": 8 + }, + { + "begin": 2656, + "end": 2688, + "name": "PUSH [tag]", + "source": 8, + "value": "308" + }, + { + "begin": 2670, + "end": 2672, + "name": "DUP6", + "source": 8 + }, + { + "begin": 2674, + "end": 2681, + "name": "DUP6", + "source": 8 + }, + { + "begin": 2683, + "end": 2687, + "name": "DUP6", + "source": 8 + }, + { + "begin": 2656, + "end": 2669, + "name": "PUSH [tag]", + "source": 8, + "value": "309" + }, + { + "begin": 2656, + "end": 2688, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2656, + "end": 2688, + "name": "tag", + "source": 8, + "value": "308" + }, + { + "begin": 2656, + "end": 2688, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2632, + "end": 2688, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 2632, + "end": 2688, + "name": "POP", + "source": 8 + }, + { + "begin": 2728, + "end": 2729, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2703, + "end": 2730, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2703, + "end": 2730, + "name": "AND", + "source": 8 + }, + { + "begin": 2703, + "end": 2716, + "name": "DUP2", + "source": 8 + }, + { + "begin": 2703, + "end": 2730, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2703, + "end": 2730, + "name": "AND", + "source": 8 + }, + { + "begin": 2703, + "end": 2730, + "name": "SUB", + "source": 8 + }, + { + "begin": 2699, + "end": 2909, + "name": "PUSH [tag]", + "source": 8, + "value": "310" + }, + { + "begin": 2699, + "end": 2909, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 2746, + "end": 2786, + "name": "PUSH [tag]", + "source": 8, + "value": "311" + }, + { + "begin": 2778, + "end": 2785, + "name": "DUP5", + "source": 8 + }, + { + "begin": 2746, + "end": 2777, + "name": "PUSH [tag]", + "source": 8, + "value": "312" + }, + { + "begin": 2746, + "end": 2786, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2746, + "end": 2786, + "name": "tag", + "source": 8, + "value": "311" + }, + { + "begin": 2746, + "end": 2786, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2699, + "end": 2909, + "name": "PUSH [tag]", + "source": 8, + "value": "313" + }, + { + "begin": 2699, + "end": 2909, + "name": "JUMP", + "source": 8 + }, + { + "begin": 2699, + "end": 2909, + "name": "tag", + "source": 8, + "value": "310" + }, + { + "begin": 2699, + "end": 2909, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2824, + "end": 2826, + "name": "DUP5", + "source": 8 + }, + { + "begin": 2807, + "end": 2826, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2807, + "end": 2826, + "name": "AND", + "source": 8 + }, + { + "begin": 2807, + "end": 2820, + "name": "DUP2", + "source": 8 + }, + { + "begin": 2807, + "end": 2826, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2807, + "end": 2826, + "name": "AND", + "source": 8 + }, + { + "begin": 2807, + "end": 2826, + "name": "EQ", + "source": 8 + }, + { + "begin": 2803, + "end": 2909, + "name": "PUSH [tag]", + "source": 8, + "value": "314" + }, + { + "begin": 2803, + "end": 2909, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 2842, + "end": 2898, + "name": "PUSH [tag]", + "source": 8, + "value": "315" + }, + { + "begin": 2875, + "end": 2888, + "name": "DUP2", + "source": 8 + }, + { + "begin": 2890, + "end": 2897, + "name": "DUP6", + "source": 8 + }, + { + "begin": 2842, + "end": 2874, + "name": "PUSH [tag]", + "source": 8, + "value": "316" + }, + { + "begin": 2842, + "end": 2898, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2842, + "end": 2898, + "name": "tag", + "source": 8, + "value": "315" + }, + { + "begin": 2842, + "end": 2898, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2803, + "end": 2909, + "name": "tag", + "source": 8, + "value": "314" + }, + { + "begin": 2803, + "end": 2909, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2699, + "end": 2909, + "name": "tag", + "source": 8, + "value": "313" + }, + { + "begin": 2699, + "end": 2909, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2936, + "end": 2937, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 2922, + "end": 2938, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2922, + "end": 2938, + "name": "AND", + "source": 8 + }, + { + "begin": 2922, + "end": 2924, + "name": "DUP6", + "source": 8 + }, + { + "begin": 2922, + "end": 2938, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2922, + "end": 2938, + "name": "AND", + "source": 8 + }, + { + "begin": 2922, + "end": 2938, + "name": "SUB", + "source": 8 + }, + { + "begin": 2918, + "end": 3106, + "name": "PUSH [tag]", + "source": 8, + "value": "317" + }, + { + "begin": 2918, + "end": 3106, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 2954, + "end": 2999, + "name": "PUSH [tag]", + "source": 8, + "value": "318" + }, + { + "begin": 2991, + "end": 2998, + "name": "DUP5", + "source": 8 + }, + { + "begin": 2954, + "end": 2990, + "name": "PUSH [tag]", + "source": 8, + "value": "319" + }, + { + "begin": 2954, + "end": 2999, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 2954, + "end": 2999, + "name": "tag", + "source": 8, + "value": "318" + }, + { + "begin": 2954, + "end": 2999, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2918, + "end": 3106, + "name": "PUSH [tag]", + "source": 8, + "value": "320" + }, + { + "begin": 2918, + "end": 3106, + "name": "JUMP", + "source": 8 + }, + { + "begin": 2918, + "end": 3106, + "name": "tag", + "source": 8, + "value": "317" + }, + { + "begin": 2918, + "end": 3106, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 3037, + "end": 3039, + "name": "DUP5", + "source": 8 + }, + { + "begin": 3020, + "end": 3039, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3020, + "end": 3039, + "name": "AND", + "source": 8 + }, + { + "begin": 3020, + "end": 3033, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3020, + "end": 3039, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3020, + "end": 3039, + "name": "AND", + "source": 8 + }, + { + "begin": 3020, + "end": 3039, + "name": "EQ", + "source": 8 + }, + { + "begin": 3016, + "end": 3106, + "name": "PUSH [tag]", + "source": 8, + "value": "321" + }, + { + "begin": 3016, + "end": 3106, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 3055, + "end": 3095, + "name": "PUSH [tag]", + "source": 8, + "value": "322" + }, + { + "begin": 3083, + "end": 3085, + "name": "DUP6", + "source": 8 + }, + { + "begin": 3087, + "end": 3094, + "name": "DUP6", + "source": 8 + }, + { + "begin": 3055, + "end": 3082, + "name": "PUSH [tag]", + "source": 8, + "value": "323" + }, + { + "begin": 3055, + "end": 3095, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 3055, + "end": 3095, + "name": "tag", + "source": 8, + "value": "322" + }, + { + "begin": 3055, + "end": 3095, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 3016, + "end": 3106, + "name": "tag", + "source": 8, + "value": "321" + }, + { + "begin": 3016, + "end": 3106, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 2918, + "end": 3106, + "name": "tag", + "source": 8, + "value": "320" + }, + { + "begin": 2918, + "end": 3106, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 3123, + "end": 3136, + "name": "DUP1", + "source": 8 + }, + { + "begin": 3116, + "end": 3136, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 3116, + "end": 3136, + "name": "POP", + "source": 8 + }, + { + "begin": 3116, + "end": 3136, + "name": "POP", + "source": 8 + }, + { + "begin": 2518, + "end": 3143, + "name": "SWAP4", + "source": 8 + }, + { + "begin": 2518, + "end": 3143, + "name": "SWAP3", + "source": 8 + }, + { + "begin": 2518, + "end": 3143, + "name": "POP", + "source": 8 + }, + { + "begin": 2518, + "end": 3143, + "name": "POP", + "source": 8 + }, + { + "begin": 2518, + "end": 3143, + "name": "POP", + "source": 8 + }, + { + "begin": 2518, + "end": 3143, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 10954, + "end": 11136, + "name": "tag", + "source": 5, + "value": "244" + }, + { + "begin": 10954, + "end": 11136, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 11048, + "end": 11066, + "name": "PUSH [tag]", + "source": 5, + "value": "325" + }, + { + "begin": 11054, + "end": 11056, + "name": "DUP4", + "source": 5 + }, + { + "begin": 11058, + "end": 11065, + "name": "DUP4", + "source": 5 + }, + { + "begin": 11048, + "end": 11053, + "name": "PUSH [tag]", + "source": 5, + "value": "326" + }, + { + "begin": 11048, + "end": 11066, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 11048, + "end": 11066, + "name": "tag", + "source": 5, + "value": "325" + }, + { + "begin": 11048, + "end": 11066, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 11076, + "end": 11129, + "name": "PUSH [tag]", + "source": 5, + "value": "327" + }, + { + "begin": 11107, + "end": 11108, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 11111, + "end": 11113, + "name": "DUP5", + "source": 5 + }, + { + "begin": 11115, + "end": 11122, + "name": "DUP5", + "source": 5 + }, + { + "begin": 11124, + "end": 11128, + "name": "DUP5", + "source": 5 + }, + { + "begin": 11076, + "end": 11098, + "name": "PUSH [tag]", + "source": 5, + "value": "203" + }, + { + "begin": 11076, + "end": 11129, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 11076, + "end": 11129, + "name": "tag", + "source": 5, + "value": "327" + }, + { + "begin": 11076, + "end": 11129, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10954, + "end": 11136, + "name": "POP", + "source": 5 + }, + { + "begin": 10954, + "end": 11136, + "name": "POP", + "source": 5 + }, + { + "begin": 10954, + "end": 11136, + "name": "POP", + "source": 5 + }, + { + "begin": 10954, + "end": 11136, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 12214, + "end": 13130, + "name": "tag", + "source": 16, + "value": "247" + }, + { + "begin": 12214, + "end": 13130, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12267, + "end": 12274, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12286, + "end": 12300, + "name": "DUP1", + "source": 16 + }, + { + "begin": 12303, + "end": 12304, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12286, + "end": 12304, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12286, + "end": 12304, + "name": "POP", + "source": 16 + }, + { + "begin": 12351, + "end": 12359, + "name": "PUSH", + "source": 16, + "value": "184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000" + }, + { + "begin": 12342, + "end": 12347, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12342, + "end": 12359, + "name": "LT", + "source": 16 + }, + { + "begin": 12338, + "end": 12441, + "name": "PUSH [tag]", + "source": 16, + "value": "329" + }, + { + "begin": 12338, + "end": 12441, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12388, + "end": 12396, + "name": "PUSH", + "source": 16, + "value": "184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000" + }, + { + "begin": 12379, + "end": 12396, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "PUSH [tag]", + "source": 16, + "value": "330" + }, + { + "begin": 12379, + "end": 12396, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "PUSH [tag]", + "source": 16, + "value": "331" + }, + { + "begin": 12379, + "end": 12396, + "name": "PUSH [tag]", + "source": 16, + "value": "256" + }, + { + "begin": 12379, + "end": 12396, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "tag", + "source": 16, + "value": "331" + }, + { + "begin": 12379, + "end": 12396, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "tag", + "source": 16, + "value": "330" + }, + { + "begin": 12379, + "end": 12396, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "DIV", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12379, + "end": 12396, + "name": "POP", + "source": 16 + }, + { + "begin": 12424, + "end": 12426, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 12414, + "end": 12426, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12414, + "end": 12426, + "name": "ADD", + "source": 16 + }, + { + "begin": 12414, + "end": 12426, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12414, + "end": 12426, + "name": "POP", + "source": 16 + }, + { + "begin": 12338, + "end": 12441, + "name": "tag", + "source": 16, + "value": "329" + }, + { + "begin": 12338, + "end": 12441, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12467, + "end": 12475, + "name": "PUSH", + "source": 16, + "value": "4EE2D6D415B85ACEF8100000000" + }, + { + "begin": 12458, + "end": 12463, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12458, + "end": 12475, + "name": "LT", + "source": 16 + }, + { + "begin": 12454, + "end": 12557, + "name": "PUSH [tag]", + "source": 16, + "value": "332" + }, + { + "begin": 12454, + "end": 12557, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12504, + "end": 12512, + "name": "PUSH", + "source": 16, + "value": "4EE2D6D415B85ACEF8100000000" + }, + { + "begin": 12495, + "end": 12512, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "PUSH [tag]", + "source": 16, + "value": "333" + }, + { + "begin": 12495, + "end": 12512, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "PUSH [tag]", + "source": 16, + "value": "334" + }, + { + "begin": 12495, + "end": 12512, + "name": "PUSH [tag]", + "source": 16, + "value": "256" + }, + { + "begin": 12495, + "end": 12512, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "tag", + "source": 16, + "value": "334" + }, + { + "begin": 12495, + "end": 12512, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "tag", + "source": 16, + "value": "333" + }, + { + "begin": 12495, + "end": 12512, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "DIV", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12495, + "end": 12512, + "name": "POP", + "source": 16 + }, + { + "begin": 12540, + "end": 12542, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 12530, + "end": 12542, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12530, + "end": 12542, + "name": "ADD", + "source": 16 + }, + { + "begin": 12530, + "end": 12542, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12530, + "end": 12542, + "name": "POP", + "source": 16 + }, + { + "begin": 12454, + "end": 12557, + "name": "tag", + "source": 16, + "value": "332" + }, + { + "begin": 12454, + "end": 12557, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12583, + "end": 12591, + "name": "PUSH", + "source": 16, + "value": "2386F26FC10000" + }, + { + "begin": 12574, + "end": 12579, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12574, + "end": 12591, + "name": "LT", + "source": 16 + }, + { + "begin": 12570, + "end": 12673, + "name": "PUSH [tag]", + "source": 16, + "value": "335" + }, + { + "begin": 12570, + "end": 12673, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12620, + "end": 12628, + "name": "PUSH", + "source": 16, + "value": "2386F26FC10000" + }, + { + "begin": 12611, + "end": 12628, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "PUSH [tag]", + "source": 16, + "value": "336" + }, + { + "begin": 12611, + "end": 12628, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "PUSH [tag]", + "source": 16, + "value": "337" + }, + { + "begin": 12611, + "end": 12628, + "name": "PUSH [tag]", + "source": 16, + "value": "256" + }, + { + "begin": 12611, + "end": 12628, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "tag", + "source": 16, + "value": "337" + }, + { + "begin": 12611, + "end": 12628, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "tag", + "source": 16, + "value": "336" + }, + { + "begin": 12611, + "end": 12628, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "DIV", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12611, + "end": 12628, + "name": "POP", + "source": 16 + }, + { + "begin": 12656, + "end": 12658, + "name": "PUSH", + "source": 16, + "value": "10" + }, + { + "begin": 12646, + "end": 12658, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12646, + "end": 12658, + "name": "ADD", + "source": 16 + }, + { + "begin": 12646, + "end": 12658, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12646, + "end": 12658, + "name": "POP", + "source": 16 + }, + { + "begin": 12570, + "end": 12673, + "name": "tag", + "source": 16, + "value": "335" + }, + { + "begin": 12570, + "end": 12673, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12699, + "end": 12706, + "name": "PUSH", + "source": 16, + "value": "5F5E100" + }, + { + "begin": 12690, + "end": 12695, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12690, + "end": 12706, + "name": "LT", + "source": 16 + }, + { + "begin": 12686, + "end": 12786, + "name": "PUSH [tag]", + "source": 16, + "value": "338" + }, + { + "begin": 12686, + "end": 12786, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12735, + "end": 12742, + "name": "PUSH", + "source": 16, + "value": "5F5E100" + }, + { + "begin": 12726, + "end": 12742, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "PUSH [tag]", + "source": 16, + "value": "339" + }, + { + "begin": 12726, + "end": 12742, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "PUSH [tag]", + "source": 16, + "value": "340" + }, + { + "begin": 12726, + "end": 12742, + "name": "PUSH [tag]", + "source": 16, + "value": "256" + }, + { + "begin": 12726, + "end": 12742, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "tag", + "source": 16, + "value": "340" + }, + { + "begin": 12726, + "end": 12742, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "tag", + "source": 16, + "value": "339" + }, + { + "begin": 12726, + "end": 12742, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "DIV", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12726, + "end": 12742, + "name": "POP", + "source": 16 + }, + { + "begin": 12770, + "end": 12771, + "name": "PUSH", + "source": 16, + "value": "8" + }, + { + "begin": 12760, + "end": 12771, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12760, + "end": 12771, + "name": "ADD", + "source": 16 + }, + { + "begin": 12760, + "end": 12771, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12760, + "end": 12771, + "name": "POP", + "source": 16 + }, + { + "begin": 12686, + "end": 12786, + "name": "tag", + "source": 16, + "value": "338" + }, + { + "begin": 12686, + "end": 12786, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12812, + "end": 12819, + "name": "PUSH", + "source": 16, + "value": "2710" + }, + { + "begin": 12803, + "end": 12808, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12803, + "end": 12819, + "name": "LT", + "source": 16 + }, + { + "begin": 12799, + "end": 12899, + "name": "PUSH [tag]", + "source": 16, + "value": "341" + }, + { + "begin": 12799, + "end": 12899, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12848, + "end": 12855, + "name": "PUSH", + "source": 16, + "value": "2710" + }, + { + "begin": 12839, + "end": 12855, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "PUSH [tag]", + "source": 16, + "value": "342" + }, + { + "begin": 12839, + "end": 12855, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "PUSH [tag]", + "source": 16, + "value": "343" + }, + { + "begin": 12839, + "end": 12855, + "name": "PUSH [tag]", + "source": 16, + "value": "256" + }, + { + "begin": 12839, + "end": 12855, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "tag", + "source": 16, + "value": "343" + }, + { + "begin": 12839, + "end": 12855, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "tag", + "source": 16, + "value": "342" + }, + { + "begin": 12839, + "end": 12855, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "DIV", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12839, + "end": 12855, + "name": "POP", + "source": 16 + }, + { + "begin": 12883, + "end": 12884, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 12873, + "end": 12884, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12873, + "end": 12884, + "name": "ADD", + "source": 16 + }, + { + "begin": 12873, + "end": 12884, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12873, + "end": 12884, + "name": "POP", + "source": 16 + }, + { + "begin": 12799, + "end": 12899, + "name": "tag", + "source": 16, + "value": "341" + }, + { + "begin": 12799, + "end": 12899, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12925, + "end": 12932, + "name": "PUSH", + "source": 16, + "value": "64" + }, + { + "begin": 12916, + "end": 12921, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12916, + "end": 12932, + "name": "LT", + "source": 16 + }, + { + "begin": 12912, + "end": 13012, + "name": "PUSH [tag]", + "source": 16, + "value": "344" + }, + { + "begin": 12912, + "end": 13012, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12961, + "end": 12968, + "name": "PUSH", + "source": 16, + "value": "64" + }, + { + "begin": 12952, + "end": 12968, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "PUSH [tag]", + "source": 16, + "value": "345" + }, + { + "begin": 12952, + "end": 12968, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "PUSH [tag]", + "source": 16, + "value": "346" + }, + { + "begin": 12952, + "end": 12968, + "name": "PUSH [tag]", + "source": 16, + "value": "256" + }, + { + "begin": 12952, + "end": 12968, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "tag", + "source": 16, + "value": "346" + }, + { + "begin": 12952, + "end": 12968, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "tag", + "source": 16, + "value": "345" + }, + { + "begin": 12952, + "end": 12968, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "DIV", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12952, + "end": 12968, + "name": "POP", + "source": 16 + }, + { + "begin": 12996, + "end": 12997, + "name": "PUSH", + "source": 16, + "value": "2" + }, + { + "begin": 12986, + "end": 12997, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12986, + "end": 12997, + "name": "ADD", + "source": 16 + }, + { + "begin": 12986, + "end": 12997, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12986, + "end": 12997, + "name": "POP", + "source": 16 + }, + { + "begin": 12912, + "end": 13012, + "name": "tag", + "source": 16, + "value": "344" + }, + { + "begin": 12912, + "end": 13012, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13038, + "end": 13045, + "name": "PUSH", + "source": 16, + "value": "A" + }, + { + "begin": 13029, + "end": 13034, + "name": "DUP4", + "source": 16 + }, + { + "begin": 13029, + "end": 13045, + "name": "LT", + "source": 16 + }, + { + "begin": 13025, + "end": 13091, + "name": "PUSH [tag]", + "source": 16, + "value": "347" + }, + { + "begin": 13025, + "end": 13091, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 13075, + "end": 13076, + "name": "PUSH", + "source": 16, + "value": "1" + }, + { + "begin": 13065, + "end": 13076, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13065, + "end": 13076, + "name": "ADD", + "source": 16 + }, + { + "begin": 13065, + "end": 13076, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 13065, + "end": 13076, + "name": "POP", + "source": 16 + }, + { + "begin": 13025, + "end": 13091, + "name": "tag", + "source": 16, + "value": "347" + }, + { + "begin": 13025, + "end": 13091, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13117, + "end": 13123, + "name": "DUP1", + "source": 16 + }, + { + "begin": 13110, + "end": 13123, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 13110, + "end": 13123, + "name": "POP", + "source": 16 + }, + { + "begin": 13110, + "end": 13123, + "name": "POP", + "source": 16 + }, + { + "begin": 12214, + "end": 13130, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12214, + "end": 13130, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12214, + "end": 13130, + "name": "POP", + "source": 16 + }, + { + "begin": 12214, + "end": 13130, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1561, + "end": 1861, + "name": "tag", + "source": 5, + "value": "295" + }, + { + "begin": 1561, + "end": 1861, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1663, + "end": 1667, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 1713, + "end": 1738, + "name": "PUSH", + "source": 5, + "value": "80AC58CD00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1698, + "end": 1738, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1698, + "end": 1738, + "name": "NOT", + "source": 5 + }, + { + "begin": 1698, + "end": 1738, + "name": "AND", + "source": 5 + }, + { + "begin": 1698, + "end": 1709, + "name": "DUP3", + "source": 5 + }, + { + "begin": 1698, + "end": 1738, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1698, + "end": 1738, + "name": "NOT", + "source": 5 + }, + { + "begin": 1698, + "end": 1738, + "name": "AND", + "source": 5 + }, + { + "begin": 1698, + "end": 1738, + "name": "EQ", + "source": 5 + }, + { + "begin": 1698, + "end": 1802, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1698, + "end": 1802, + "name": "PUSH [tag]", + "source": 5, + "value": "349" + }, + { + "begin": 1698, + "end": 1802, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 1698, + "end": 1802, + "name": "POP", + "source": 5 + }, + { + "begin": 1769, + "end": 1802, + "name": "PUSH", + "source": 5, + "value": "5B5E139F00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1754, + "end": 1802, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1754, + "end": 1802, + "name": "NOT", + "source": 5 + }, + { + "begin": 1754, + "end": 1802, + "name": "AND", + "source": 5 + }, + { + "begin": 1754, + "end": 1765, + "name": "DUP3", + "source": 5 + }, + { + "begin": 1754, + "end": 1802, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1754, + "end": 1802, + "name": "NOT", + "source": 5 + }, + { + "begin": 1754, + "end": 1802, + "name": "AND", + "source": 5 + }, + { + "begin": 1754, + "end": 1802, + "name": "EQ", + "source": 5 + }, + { + "begin": 1698, + "end": 1802, + "name": "tag", + "source": 5, + "value": "349" + }, + { + "begin": 1698, + "end": 1802, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1698, + "end": 1854, + "name": "DUP1", + "source": 5 + }, + { + "begin": 1698, + "end": 1854, + "name": "PUSH [tag]", + "source": 5, + "value": "350" + }, + { + "begin": 1698, + "end": 1854, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 1698, + "end": 1854, + "name": "POP", + "source": 5 + }, + { + "begin": 1818, + "end": 1854, + "name": "PUSH [tag]", + "source": 5, + "value": "351" + }, + { + "begin": 1842, + "end": 1853, + "name": "DUP3", + "source": 5 + }, + { + "begin": 1818, + "end": 1841, + "name": "PUSH [tag]", + "source": 5, + "value": "352" + }, + { + "begin": 1818, + "end": 1854, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 1818, + "end": 1854, + "name": "tag", + "source": 5, + "value": "351" + }, + { + "begin": 1818, + "end": 1854, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1698, + "end": 1854, + "name": "tag", + "source": 5, + "value": "350" + }, + { + "begin": 1698, + "end": 1854, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 1679, + "end": 1854, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1679, + "end": 1854, + "name": "POP", + "source": 5 + }, + { + "begin": 1561, + "end": 1861, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 1561, + "end": 1861, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 1561, + "end": 1861, + "name": "POP", + "source": 5 + }, + { + "begin": 1561, + "end": 1861, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 8838, + "end": 9633, + "name": "tag", + "source": 5, + "value": "309" + }, + { + "begin": 8838, + "end": 9633, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 8924, + "end": 8931, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 8943, + "end": 8955, + "name": "DUP1", + "source": 5 + }, + { + "begin": 8958, + "end": 8975, + "name": "PUSH [tag]", + "source": 5, + "value": "354" + }, + { + "begin": 8967, + "end": 8974, + "name": "DUP5", + "source": 5 + }, + { + "begin": 8958, + "end": 8966, + "name": "PUSH [tag]", + "source": 5, + "value": "225" + }, + { + "begin": 8958, + "end": 8975, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 8958, + "end": 8975, + "name": "tag", + "source": 5, + "value": "354" + }, + { + "begin": 8958, + "end": 8975, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 8943, + "end": 8975, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 8943, + "end": 8975, + "name": "POP", + "source": 5 + }, + { + "begin": 9051, + "end": 9052, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9035, + "end": 9053, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9035, + "end": 9053, + "name": "AND", + "source": 5 + }, + { + "begin": 9035, + "end": 9039, + "name": "DUP4", + "source": 5 + }, + { + "begin": 9035, + "end": 9053, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9035, + "end": 9053, + "name": "AND", + "source": 5 + }, + { + "begin": 9035, + "end": 9053, + "name": "EQ", + "source": 5 + }, + { + "begin": 9031, + "end": 9117, + "name": "PUSH [tag]", + "source": 5, + "value": "355" + }, + { + "begin": 9031, + "end": 9117, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 9069, + "end": 9106, + "name": "PUSH [tag]", + "source": 5, + "value": "356" + }, + { + "begin": 9086, + "end": 9090, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9092, + "end": 9096, + "name": "DUP5", + "source": 5 + }, + { + "begin": 9098, + "end": 9105, + "name": "DUP7", + "source": 5 + }, + { + "begin": 9069, + "end": 9085, + "name": "PUSH [tag]", + "source": 5, + "value": "357" + }, + { + "begin": 9069, + "end": 9106, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 9069, + "end": 9106, + "name": "tag", + "source": 5, + "value": "356" + }, + { + "begin": 9069, + "end": 9106, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 9031, + "end": 9117, + "name": "tag", + "source": 5, + "value": "355" + }, + { + "begin": 9031, + "end": 9117, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 9177, + "end": 9178, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9161, + "end": 9179, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9161, + "end": 9179, + "name": "AND", + "source": 5 + }, + { + "begin": 9161, + "end": 9165, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9161, + "end": 9179, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9161, + "end": 9179, + "name": "AND", + "source": 5 + }, + { + "begin": 9161, + "end": 9179, + "name": "EQ", + "source": 5 + }, + { + "begin": 9157, + "end": 9413, + "name": "PUSH [tag]", + "source": 5, + "value": "358" + }, + { + "begin": 9157, + "end": 9413, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 9277, + "end": 9325, + "name": "PUSH [tag]", + "source": 5, + "value": "359" + }, + { + "begin": 9294, + "end": 9295, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9298, + "end": 9305, + "name": "DUP6", + "source": 5 + }, + { + "begin": 9315, + "end": 9316, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9319, + "end": 9324, + "name": "DUP1", + "source": 5 + }, + { + "begin": 9277, + "end": 9285, + "name": "PUSH [tag]", + "source": 5, + "value": "232" + }, + { + "begin": 9277, + "end": 9325, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 9277, + "end": 9325, + "name": "tag", + "source": 5, + "value": "359" + }, + { + "begin": 9277, + "end": 9325, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 9387, + "end": 9388, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 9368, + "end": 9377, + "name": "PUSH", + "source": 5, + "value": "3" + }, + { + "begin": 9368, + "end": 9383, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9378, + "end": 9382, + "name": "DUP4", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9368, + "end": 9383, + "name": "AND", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9368, + "end": 9383, + "name": "AND", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 9368, + "end": 9383, + "name": "ADD", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 9368, + "end": 9383, + "name": "ADD", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9368, + "end": 9383, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 9368, + "end": 9383, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9368, + "end": 9388, + "name": "DUP3", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "DUP3", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "SUB", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "POP", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "POP", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "SSTORE", + "source": 5 + }, + { + "begin": 9368, + "end": 9388, + "name": "POP", + "source": 5 + }, + { + "begin": 9157, + "end": 9413, + "name": "tag", + "source": 5, + "value": "358" + }, + { + "begin": 9157, + "end": 9413, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 9441, + "end": 9442, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9427, + "end": 9443, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9427, + "end": 9443, + "name": "AND", + "source": 5 + }, + { + "begin": 9427, + "end": 9429, + "name": "DUP6", + "source": 5 + }, + { + "begin": 9427, + "end": 9443, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9427, + "end": 9443, + "name": "AND", + "source": 5 + }, + { + "begin": 9427, + "end": 9443, + "name": "EQ", + "source": 5 + }, + { + "begin": 9423, + "end": 9530, + "name": "PUSH [tag]", + "source": 5, + "value": "360" + }, + { + "begin": 9423, + "end": 9530, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 9504, + "end": 9505, + "name": "PUSH", + "source": 5, + "value": "1" + }, + { + "begin": 9487, + "end": 9496, + "name": "PUSH", + "source": 5, + "value": "3" + }, + { + "begin": 9487, + "end": 9500, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9497, + "end": 9499, + "name": "DUP8", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9487, + "end": 9500, + "name": "AND", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9487, + "end": 9500, + "name": "AND", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 9487, + "end": 9500, + "name": "ADD", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 9487, + "end": 9500, + "name": "ADD", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9487, + "end": 9500, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 9487, + "end": 9500, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9487, + "end": 9505, + "name": "DUP3", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "DUP3", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "ADD", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "POP", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "POP", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "SSTORE", + "source": 5 + }, + { + "begin": 9487, + "end": 9505, + "name": "POP", + "source": 5 + }, + { + "begin": 9423, + "end": 9530, + "name": "tag", + "source": 5, + "value": "360" + }, + { + "begin": 9423, + "end": 9530, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 9559, + "end": 9561, + "name": "DUP5", + "source": 5 + }, + { + "begin": 9540, + "end": 9547, + "name": "PUSH", + "source": 5, + "value": "2" + }, + { + "begin": 9540, + "end": 9556, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9548, + "end": 9555, + "name": "DUP7", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 9540, + "end": 9556, + "name": "ADD", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "PUSH", + "source": 5, + "value": "20" + }, + { + "begin": 9540, + "end": 9556, + "name": "ADD", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9540, + "end": 9556, + "name": "KECCAK256", + "source": 5 + }, + { + "begin": 9540, + "end": 9556, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 9540, + "end": 9561, + "name": "PUSH", + "source": 5, + "value": "100" + }, + { + "begin": 9540, + "end": 9561, + "name": "EXP", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "SLOAD", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "DUP2", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9540, + "end": 9561, + "name": "MUL", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "NOT", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "AND", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "DUP4", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9540, + "end": 9561, + "name": "AND", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "MUL", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "OR", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "SSTORE", + "source": 5 + }, + { + "begin": 9540, + "end": 9561, + "name": "POP", + "source": 5 + }, + { + "begin": 9596, + "end": 9603, + "name": "DUP4", + "source": 5 + }, + { + "begin": 9592, + "end": 9594, + "name": "DUP6", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9577, + "end": 9604, + "name": "AND", + "source": 5 + }, + { + "begin": 9586, + "end": 9590, + "name": "DUP3", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9577, + "end": 9604, + "name": "AND", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "PUSH", + "source": 5, + "value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF" + }, + { + "begin": 9577, + "end": 9604, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 9577, + "end": 9604, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 9577, + "end": 9604, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "SUB", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 9577, + "end": 9604, + "name": "LOG4", + "source": 5 + }, + { + "begin": 9622, + "end": 9626, + "name": "DUP1", + "source": 5 + }, + { + "begin": 9615, + "end": 9626, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 9615, + "end": 9626, + "name": "POP", + "source": 5 + }, + { + "begin": 9615, + "end": 9626, + "name": "POP", + "source": 5 + }, + { + "begin": 8838, + "end": 9633, + "name": "SWAP4", + "source": 5 + }, + { + "begin": 8838, + "end": 9633, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 8838, + "end": 9633, + "name": "POP", + "source": 5 + }, + { + "begin": 8838, + "end": 9633, + "name": "POP", + "source": 5 + }, + { + "begin": 8838, + "end": 9633, + "name": "POP", + "source": 5 + }, + { + "begin": 8838, + "end": 9633, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 3846, + "end": 4007, + "name": "tag", + "source": 8, + "value": "312" + }, + { + "begin": 3846, + "end": 4007, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 3949, + "end": 3959, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 3949, + "end": 3966, + "name": "DUP1", + "source": 8 + }, + { + "begin": 3949, + "end": 3966, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 3949, + "end": 3966, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3949, + "end": 3966, + "name": "POP", + "source": 8 + }, + { + "begin": 3922, + "end": 3937, + "name": "PUSH", + "source": 8, + "value": "9" + }, + { + "begin": 3922, + "end": 3946, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3938, + "end": 3945, + "name": "DUP4", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3922, + "end": 3946, + "name": "ADD", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3922, + "end": 3946, + "name": "ADD", + "source": 8 + }, + { + "begin": 3922, + "end": 3946, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3922, + "end": 3946, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 3922, + "end": 3966, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3922, + "end": 3966, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3922, + "end": 3966, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 3922, + "end": 3966, + "name": "POP", + "source": 8 + }, + { + "begin": 3976, + "end": 3986, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 3992, + "end": 3999, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "DUP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "PUSH", + "source": 8, + "value": "1" + }, + { + "begin": 3976, + "end": 4000, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "ADD", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "DUP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "DUP3", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "DUP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "POP", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "POP", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "PUSH", + "source": 8, + "value": "1" + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SUB", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3976, + "end": 4000, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3976, + "end": 4000, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3976, + "end": 4000, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "ADD", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "POP", + "source": 8 + }, + { + "begin": 3976, + "end": 4000, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 3846, + "end": 4007, + "name": "POP", + "source": 8 + }, + { + "begin": 3846, + "end": 4007, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 4624, + "end": 5583, + "name": "tag", + "source": 8, + "value": "316" + }, + { + "begin": 4624, + "end": 5583, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 4886, + "end": 4908, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 4911, + "end": 4926, + "name": "PUSH [tag]", + "source": 8, + "value": "364" + }, + { + "begin": 4921, + "end": 4925, + "name": "DUP4", + "source": 8 + }, + { + "begin": 4911, + "end": 4920, + "name": "PUSH [tag]", + "source": 8, + "value": "84" + }, + { + "begin": 4911, + "end": 4926, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 4911, + "end": 4926, + "name": "tag", + "source": 8, + "value": "364" + }, + { + "begin": 4911, + "end": 4926, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 4886, + "end": 4926, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 4886, + "end": 4926, + "name": "POP", + "source": 8 + }, + { + "begin": 4936, + "end": 4954, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 4957, + "end": 4974, + "name": "PUSH", + "source": 8, + "value": "7" + }, + { + "begin": 4957, + "end": 4983, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 4975, + "end": 4982, + "name": "DUP5", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "DUP2", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 4957, + "end": 4983, + "name": "ADD", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "DUP2", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 4957, + "end": 4983, + "name": "ADD", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 4957, + "end": 4983, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 4957, + "end": 4983, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 4936, + "end": 4983, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 4936, + "end": 4983, + "name": "POP", + "source": 8 + }, + { + "begin": 5101, + "end": 5115, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5087, + "end": 5097, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5087, + "end": 5115, + "name": "EQ", + "source": 8 + }, + { + "begin": 5083, + "end": 5406, + "name": "PUSH [tag]", + "source": 8, + "value": "365" + }, + { + "begin": 5083, + "end": 5406, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 5131, + "end": 5150, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5153, + "end": 5165, + "name": "PUSH", + "source": 8, + "value": "6" + }, + { + "begin": 5153, + "end": 5171, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5166, + "end": 5170, + "name": "DUP7", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5153, + "end": 5171, + "name": "AND", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5153, + "end": 5171, + "name": "AND", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5153, + "end": 5171, + "name": "ADD", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5153, + "end": 5171, + "name": "ADD", + "source": 8 + }, + { + "begin": 5153, + "end": 5171, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5153, + "end": 5171, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5172, + "end": 5186, + "name": "DUP5", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5153, + "end": 5187, + "name": "ADD", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5153, + "end": 5187, + "name": "ADD", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5153, + "end": 5187, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5153, + "end": 5187, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 5131, + "end": 5187, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5131, + "end": 5187, + "name": "POP", + "source": 8 + }, + { + "begin": 5235, + "end": 5246, + "name": "DUP1", + "source": 8 + }, + { + "begin": 5202, + "end": 5214, + "name": "PUSH", + "source": 8, + "value": "6" + }, + { + "begin": 5202, + "end": 5220, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5215, + "end": 5219, + "name": "DUP8", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5202, + "end": 5220, + "name": "AND", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5202, + "end": 5220, + "name": "AND", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5202, + "end": 5220, + "name": "ADD", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5202, + "end": 5220, + "name": "ADD", + "source": 8 + }, + { + "begin": 5202, + "end": 5220, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5202, + "end": 5220, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5221, + "end": 5231, + "name": "DUP5", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5202, + "end": 5232, + "name": "ADD", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5202, + "end": 5232, + "name": "ADD", + "source": 8 + }, + { + "begin": 5202, + "end": 5232, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5202, + "end": 5232, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5202, + "end": 5246, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5202, + "end": 5246, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5202, + "end": 5246, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 5202, + "end": 5246, + "name": "POP", + "source": 8 + }, + { + "begin": 5351, + "end": 5361, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5318, + "end": 5335, + "name": "PUSH", + "source": 8, + "value": "7" + }, + { + "begin": 5318, + "end": 5348, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5336, + "end": 5347, + "name": "DUP4", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5318, + "end": 5348, + "name": "ADD", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5318, + "end": 5348, + "name": "ADD", + "source": 8 + }, + { + "begin": 5318, + "end": 5348, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5318, + "end": 5348, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5318, + "end": 5361, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5318, + "end": 5361, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5318, + "end": 5361, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 5318, + "end": 5361, + "name": "POP", + "source": 8 + }, + { + "begin": 5117, + "end": 5406, + "name": "POP", + "source": 8 + }, + { + "begin": 5083, + "end": 5406, + "name": "tag", + "source": 8, + "value": "365" + }, + { + "begin": 5083, + "end": 5406, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 5499, + "end": 5516, + "name": "PUSH", + "source": 8, + "value": "7" + }, + { + "begin": 5499, + "end": 5525, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5517, + "end": 5524, + "name": "DUP5", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5499, + "end": 5525, + "name": "ADD", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5499, + "end": 5525, + "name": "ADD", + "source": 8 + }, + { + "begin": 5499, + "end": 5525, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5499, + "end": 5525, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5492, + "end": 5525, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5492, + "end": 5525, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5492, + "end": 5525, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 5542, + "end": 5554, + "name": "PUSH", + "source": 8, + "value": "6" + }, + { + "begin": 5542, + "end": 5560, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5555, + "end": 5559, + "name": "DUP6", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5542, + "end": 5560, + "name": "AND", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5542, + "end": 5560, + "name": "AND", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5542, + "end": 5560, + "name": "ADD", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5542, + "end": 5560, + "name": "ADD", + "source": 8 + }, + { + "begin": 5542, + "end": 5560, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5542, + "end": 5560, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5561, + "end": 5575, + "name": "DUP4", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5542, + "end": 5576, + "name": "ADD", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "DUP2", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 5542, + "end": 5576, + "name": "ADD", + "source": 8 + }, + { + "begin": 5542, + "end": 5576, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5542, + "end": 5576, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 5535, + "end": 5576, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 5535, + "end": 5576, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 5535, + "end": 5576, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 4705, + "end": 5583, + "name": "POP", + "source": 8 + }, + { + "begin": 4705, + "end": 5583, + "name": "POP", + "source": 8 + }, + { + "begin": 4624, + "end": 5583, + "name": "POP", + "source": 8 + }, + { + "begin": 4624, + "end": 5583, + "name": "POP", + "source": 8 + }, + { + "begin": 4624, + "end": 5583, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 5871, + "end": 6932, + "name": "tag", + "source": 8, + "value": "319" + }, + { + "begin": 5871, + "end": 6932, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6120, + "end": 6142, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6165, + "end": 6166, + "name": "PUSH", + "source": 8, + "value": "1" + }, + { + "begin": 6145, + "end": 6155, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 6145, + "end": 6162, + "name": "DUP1", + "source": 8 + }, + { + "begin": 6145, + "end": 6162, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 6145, + "end": 6162, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6145, + "end": 6162, + "name": "POP", + "source": 8 + }, + { + "begin": 6145, + "end": 6166, + "name": "PUSH [tag]", + "source": 8, + "value": "367" + }, + { + "begin": 6145, + "end": 6166, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 6145, + "end": 6166, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6145, + "end": 6166, + "name": "PUSH [tag]", + "source": 8, + "value": "368" + }, + { + "begin": 6145, + "end": 6166, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 6145, + "end": 6166, + "name": "tag", + "source": 8, + "value": "367" + }, + { + "begin": 6145, + "end": 6166, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6120, + "end": 6166, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6120, + "end": 6166, + "name": "POP", + "source": 8 + }, + { + "begin": 6176, + "end": 6194, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6197, + "end": 6212, + "name": "PUSH", + "source": 8, + "value": "9" + }, + { + "begin": 6197, + "end": 6221, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6213, + "end": 6220, + "name": "DUP5", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6197, + "end": 6221, + "name": "ADD", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6197, + "end": 6221, + "name": "ADD", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6197, + "end": 6221, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 6197, + "end": 6221, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 6176, + "end": 6221, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6176, + "end": 6221, + "name": "POP", + "source": 8 + }, + { + "begin": 6543, + "end": 6562, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6565, + "end": 6575, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 6576, + "end": 6590, + "name": "DUP4", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "LT", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "PUSH [tag]", + "source": 8, + "value": "369" + }, + { + "begin": 6565, + "end": 6591, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "PUSH [tag]", + "source": 8, + "value": "370" + }, + { + "begin": 6565, + "end": 6591, + "name": "PUSH [tag]", + "source": 8, + "value": "171" + }, + { + "begin": 6565, + "end": 6591, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "tag", + "source": 8, + "value": "370" + }, + { + "begin": 6565, + "end": 6591, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "tag", + "source": 8, + "value": "369" + }, + { + "begin": 6565, + "end": 6591, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6565, + "end": 6591, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6565, + "end": 6591, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6565, + "end": 6591, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "ADD", + "source": 8 + }, + { + "begin": 6565, + "end": 6591, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 6543, + "end": 6591, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6543, + "end": 6591, + "name": "POP", + "source": 8 + }, + { + "begin": 6627, + "end": 6638, + "name": "DUP1", + "source": 8 + }, + { + "begin": 6602, + "end": 6612, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 6613, + "end": 6623, + "name": "DUP4", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "LT", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "PUSH [tag]", + "source": 8, + "value": "372" + }, + { + "begin": 6602, + "end": 6624, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "PUSH [tag]", + "source": 8, + "value": "373" + }, + { + "begin": 6602, + "end": 6624, + "name": "PUSH [tag]", + "source": 8, + "value": "171" + }, + { + "begin": 6602, + "end": 6624, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "tag", + "source": 8, + "value": "373" + }, + { + "begin": 6602, + "end": 6624, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "tag", + "source": 8, + "value": "372" + }, + { + "begin": 6602, + "end": 6624, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6602, + "end": 6624, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6602, + "end": 6624, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6602, + "end": 6624, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 6602, + "end": 6624, + "name": "ADD", + "source": 8 + }, + { + "begin": 6602, + "end": 6638, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6602, + "end": 6638, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6602, + "end": 6638, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 6602, + "end": 6638, + "name": "POP", + "source": 8 + }, + { + "begin": 6737, + "end": 6747, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6706, + "end": 6721, + "name": "PUSH", + "source": 8, + "value": "9" + }, + { + "begin": 6706, + "end": 6734, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6722, + "end": 6733, + "name": "DUP4", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6706, + "end": 6734, + "name": "ADD", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6706, + "end": 6734, + "name": "ADD", + "source": 8 + }, + { + "begin": 6706, + "end": 6734, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6706, + "end": 6734, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 6706, + "end": 6747, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6706, + "end": 6747, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6706, + "end": 6747, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 6706, + "end": 6747, + "name": "POP", + "source": 8 + }, + { + "begin": 6875, + "end": 6890, + "name": "PUSH", + "source": 8, + "value": "9" + }, + { + "begin": 6875, + "end": 6899, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6891, + "end": 6898, + "name": "DUP6", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6875, + "end": 6899, + "name": "ADD", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6875, + "end": 6899, + "name": "ADD", + "source": 8 + }, + { + "begin": 6875, + "end": 6899, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6875, + "end": 6899, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 6868, + "end": 6899, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6868, + "end": 6899, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6868, + "end": 6899, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 6909, + "end": 6919, + "name": "PUSH", + "source": 8, + "value": "8" + }, + { + "begin": 6909, + "end": 6925, + "name": "DUP1", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "SLOAD", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "DUP1", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH [tag]", + "source": 8, + "value": "375" + }, + { + "begin": 6909, + "end": 6925, + "name": "JUMPI", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH [tag]", + "source": 8, + "value": "376" + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH [tag]", + "source": 8, + "value": "377" + }, + { + "begin": 6909, + "end": 6925, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "tag", + "source": 8, + "value": "376" + }, + { + "begin": 6909, + "end": 6925, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "tag", + "source": 8, + "value": "375" + }, + { + "begin": 6909, + "end": 6925, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH", + "source": 8, + "value": "1" + }, + { + "begin": 6909, + "end": 6925, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "SUB", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "DUP2", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6909, + "end": 6925, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6909, + "end": 6925, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "ADD", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 6909, + "end": 6925, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 6909, + "end": 6925, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 5942, + "end": 6932, + "name": "POP", + "source": 8 + }, + { + "begin": 5942, + "end": 6932, + "name": "POP", + "source": 8 + }, + { + "begin": 5942, + "end": 6932, + "name": "POP", + "source": 8 + }, + { + "begin": 5871, + "end": 6932, + "name": "POP", + "source": 8 + }, + { + "begin": 5871, + "end": 6932, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 3437, + "end": 3651, + "name": "tag", + "source": 8, + "value": "323" + }, + { + "begin": 3437, + "end": 3651, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 3521, + "end": 3535, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3554, + "end": 3555, + "name": "PUSH", + "source": 8, + "value": "1" + }, + { + "begin": 3538, + "end": 3551, + "name": "PUSH [tag]", + "source": 8, + "value": "380" + }, + { + "begin": 3548, + "end": 3550, + "name": "DUP5", + "source": 8 + }, + { + "begin": 3538, + "end": 3547, + "name": "PUSH [tag]", + "source": 8, + "value": "84" + }, + { + "begin": 3538, + "end": 3551, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 3538, + "end": 3551, + "name": "tag", + "source": 8, + "value": "380" + }, + { + "begin": 3538, + "end": 3551, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 3538, + "end": 3555, + "name": "PUSH [tag]", + "source": 8, + "value": "381" + }, + { + "begin": 3538, + "end": 3555, + "name": "SWAP2", + "source": 8 + }, + { + "begin": 3538, + "end": 3555, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3538, + "end": 3555, + "name": "PUSH [tag]", + "source": 8, + "value": "368" + }, + { + "begin": 3538, + "end": 3555, + "jumpType": "[in]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 3538, + "end": 3555, + "name": "tag", + "source": 8, + "value": "381" + }, + { + "begin": 3538, + "end": 3555, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 3521, + "end": 3555, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3521, + "end": 3555, + "name": "POP", + "source": 8 + }, + { + "begin": 3592, + "end": 3599, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3565, + "end": 3577, + "name": "PUSH", + "source": 8, + "value": "6" + }, + { + "begin": 3565, + "end": 3581, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3578, + "end": 3580, + "name": "DUP6", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3565, + "end": 3581, + "name": "AND", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "PUSH", + "source": 8, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3565, + "end": 3581, + "name": "AND", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3565, + "end": 3581, + "name": "ADD", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3565, + "end": 3581, + "name": "ADD", + "source": 8 + }, + { + "begin": 3565, + "end": 3581, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3565, + "end": 3581, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3582, + "end": 3588, + "name": "DUP4", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3565, + "end": 3589, + "name": "ADD", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3565, + "end": 3589, + "name": "ADD", + "source": 8 + }, + { + "begin": 3565, + "end": 3589, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3565, + "end": 3589, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 3565, + "end": 3599, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3565, + "end": 3599, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3565, + "end": 3599, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 3565, + "end": 3599, + "name": "POP", + "source": 8 + }, + { + "begin": 3638, + "end": 3644, + "name": "DUP1", + "source": 8 + }, + { + "begin": 3609, + "end": 3626, + "name": "PUSH", + "source": 8, + "value": "7" + }, + { + "begin": 3609, + "end": 3635, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3627, + "end": 3634, + "name": "DUP5", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3609, + "end": 3635, + "name": "ADD", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "MSTORE", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "PUSH", + "source": 8, + "value": "20" + }, + { + "begin": 3609, + "end": 3635, + "name": "ADD", + "source": 8 + }, + { + "begin": 3609, + "end": 3635, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 3609, + "end": 3635, + "name": "KECCAK256", + "source": 8 + }, + { + "begin": 3609, + "end": 3644, + "name": "DUP2", + "source": 8 + }, + { + "begin": 3609, + "end": 3644, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 3609, + "end": 3644, + "name": "SSTORE", + "source": 8 + }, + { + "begin": 3609, + "end": 3644, + "name": "POP", + "source": 8 + }, + { + "begin": 3511, + "end": 3651, + "name": "POP", + "source": 8 + }, + { + "begin": 3437, + "end": 3651, + "name": "POP", + "source": 8 + }, + { + "begin": 3437, + "end": 3651, + "name": "POP", + "source": 8 + }, + { + "begin": 3437, + "end": 3651, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 9955, + "end": 10282, + "name": "tag", + "source": 5, + "value": "326" + }, + { + "begin": 9955, + "end": 10282, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10036, + "end": 10037, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 10022, + "end": 10038, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10022, + "end": 10038, + "name": "AND", + "source": 5 + }, + { + "begin": 10022, + "end": 10024, + "name": "DUP3", + "source": 5 + }, + { + "begin": 10022, + "end": 10038, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10022, + "end": 10038, + "name": "AND", + "source": 5 + }, + { + "begin": 10022, + "end": 10038, + "name": "SUB", + "source": 5 + }, + { + "begin": 10018, + "end": 10105, + "name": "PUSH [tag]", + "source": 5, + "value": "383" + }, + { + "begin": 10018, + "end": 10105, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 10091, + "end": 10092, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 10061, + "end": 10094, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 10061, + "end": 10094, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "PUSH", + "source": 5, + "value": "64A0AE9200000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 10061, + "end": 10094, + "name": "DUP2", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 10061, + "end": 10094, + "name": "ADD", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "PUSH [tag]", + "source": 5, + "value": "384" + }, + { + "begin": 10061, + "end": 10094, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 10061, + "end": 10094, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "tag", + "source": 5, + "value": "384" + }, + { + "begin": 10061, + "end": 10094, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 10061, + "end": 10094, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "DUP1", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "SUB", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 10061, + "end": 10094, + "name": "REVERT", + "source": 5 + }, + { + "begin": 10018, + "end": 10105, + "name": "tag", + "source": 5, + "value": "383" + }, + { + "begin": 10018, + "end": 10105, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10114, + "end": 10135, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 10138, + "end": 10170, + "name": "PUSH [tag]", + "source": 5, + "value": "385" + }, + { + "begin": 10146, + "end": 10148, + "name": "DUP4", + "source": 5 + }, + { + "begin": 10150, + "end": 10157, + "name": "DUP4", + "source": 5 + }, + { + "begin": 10167, + "end": 10168, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 10138, + "end": 10145, + "name": "PUSH [tag]", + "source": 5, + "value": "140" + }, + { + "begin": 10138, + "end": 10170, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 10138, + "end": 10170, + "name": "tag", + "source": 5, + "value": "385" + }, + { + "begin": 10138, + "end": 10170, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10114, + "end": 10170, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 10114, + "end": 10170, + "name": "POP", + "source": 5 + }, + { + "begin": 10209, + "end": 10210, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 10184, + "end": 10211, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10184, + "end": 10211, + "name": "AND", + "source": 5 + }, + { + "begin": 10184, + "end": 10197, + "name": "DUP2", + "source": 5 + }, + { + "begin": 10184, + "end": 10211, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10184, + "end": 10211, + "name": "AND", + "source": 5 + }, + { + "begin": 10184, + "end": 10211, + "name": "EQ", + "source": 5 + }, + { + "begin": 10180, + "end": 10276, + "name": "PUSH [tag]", + "source": 5, + "value": "386" + }, + { + "begin": 10180, + "end": 10276, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 10262, + "end": 10263, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 10234, + "end": 10265, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 10234, + "end": 10265, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "PUSH", + "source": 5, + "value": "73C6AC6E00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 10234, + "end": 10265, + "name": "DUP2", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 10234, + "end": 10265, + "name": "ADD", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "PUSH [tag]", + "source": 5, + "value": "387" + }, + { + "begin": 10234, + "end": 10265, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "PUSH [tag]", + "source": 5, + "value": "43" + }, + { + "begin": 10234, + "end": 10265, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "tag", + "source": 5, + "value": "387" + }, + { + "begin": 10234, + "end": 10265, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 10234, + "end": 10265, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "DUP1", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "SUB", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 10234, + "end": 10265, + "name": "REVERT", + "source": 5 + }, + { + "begin": 10180, + "end": 10276, + "name": "tag", + "source": 5, + "value": "386" + }, + { + "begin": 10180, + "end": 10276, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 10008, + "end": 10282, + "name": "POP", + "source": 5 + }, + { + "begin": 9955, + "end": 10282, + "name": "POP", + "source": 5 + }, + { + "begin": 9955, + "end": 10282, + "name": "POP", + "source": 5 + }, + { + "begin": 9955, + "end": 10282, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 762, + "end": 908, + "name": "tag", + "source": 14, + "value": "352" + }, + { + "begin": 762, + "end": 908, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 838, + "end": 842, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 876, + "end": 901, + "name": "PUSH", + "source": 14, + "value": "1FFC9A700000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 861, + "end": 901, + "name": "PUSH", + "source": 14, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 861, + "end": 901, + "name": "NOT", + "source": 14 + }, + { + "begin": 861, + "end": 901, + "name": "AND", + "source": 14 + }, + { + "begin": 861, + "end": 872, + "name": "DUP3", + "source": 14 + }, + { + "begin": 861, + "end": 901, + "name": "PUSH", + "source": 14, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 861, + "end": 901, + "name": "NOT", + "source": 14 + }, + { + "begin": 861, + "end": 901, + "name": "AND", + "source": 14 + }, + { + "begin": 861, + "end": 901, + "name": "EQ", + "source": 14 + }, + { + "begin": 854, + "end": 901, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 854, + "end": 901, + "name": "POP", + "source": 14 + }, + { + "begin": 762, + "end": 908, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 762, + "end": 908, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 762, + "end": 908, + "name": "POP", + "source": 14 + }, + { + "begin": 762, + "end": 908, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7082, + "end": 7450, + "name": "tag", + "source": 5, + "value": "357" + }, + { + "begin": 7082, + "end": 7450, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 7194, + "end": 7232, + "name": "PUSH [tag]", + "source": 5, + "value": "390" + }, + { + "begin": 7208, + "end": 7213, + "name": "DUP4", + "source": 5 + }, + { + "begin": 7215, + "end": 7222, + "name": "DUP4", + "source": 5 + }, + { + "begin": 7224, + "end": 7231, + "name": "DUP4", + "source": 5 + }, + { + "begin": 7194, + "end": 7207, + "name": "PUSH [tag]", + "source": 5, + "value": "391" + }, + { + "begin": 7194, + "end": 7232, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 7194, + "end": 7232, + "name": "tag", + "source": 5, + "value": "390" + }, + { + "begin": 7194, + "end": 7232, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 7189, + "end": 7444, + "name": "PUSH [tag]", + "source": 5, + "value": "392" + }, + { + "begin": 7189, + "end": 7444, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 7269, + "end": 7270, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 7252, + "end": 7271, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7252, + "end": 7271, + "name": "AND", + "source": 5 + }, + { + "begin": 7252, + "end": 7257, + "name": "DUP4", + "source": 5 + }, + { + "begin": 7252, + "end": 7271, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7252, + "end": 7271, + "name": "AND", + "source": 5 + }, + { + "begin": 7252, + "end": 7271, + "name": "SUB", + "source": 5 + }, + { + "begin": 7248, + "end": 7434, + "name": "PUSH [tag]", + "source": 5, + "value": "393" + }, + { + "begin": 7248, + "end": 7434, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 7321, + "end": 7328, + "name": "DUP1", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 7298, + "end": 7329, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "PUSH", + "source": 5, + "value": "7E27328900000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 7298, + "end": 7329, + "name": "DUP2", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 7298, + "end": 7329, + "name": "ADD", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "PUSH [tag]", + "source": 5, + "value": "394" + }, + { + "begin": 7298, + "end": 7329, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "PUSH [tag]", + "source": 5, + "value": "51" + }, + { + "begin": 7298, + "end": 7329, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "tag", + "source": 5, + "value": "394" + }, + { + "begin": 7298, + "end": 7329, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 7298, + "end": 7329, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "DUP1", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "SUB", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 7298, + "end": 7329, + "name": "REVERT", + "source": 5 + }, + { + "begin": 7248, + "end": 7434, + "name": "tag", + "source": 5, + "value": "393" + }, + { + "begin": 7248, + "end": 7434, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 7402, + "end": 7409, + "name": "DUP2", + "source": 5 + }, + { + "begin": 7411, + "end": 7418, + "name": "DUP2", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 7375, + "end": 7419, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "PUSH", + "source": 5, + "value": "177E802F00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 7375, + "end": 7419, + "name": "DUP2", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "MSTORE", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "PUSH", + "source": 5, + "value": "4" + }, + { + "begin": 7375, + "end": 7419, + "name": "ADD", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "PUSH [tag]", + "source": 5, + "value": "396" + }, + { + "begin": 7375, + "end": 7419, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "PUSH [tag]", + "source": 5, + "value": "148" + }, + { + "begin": 7375, + "end": 7419, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "tag", + "source": 5, + "value": "396" + }, + { + "begin": 7375, + "end": 7419, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "PUSH", + "source": 5, + "value": "40" + }, + { + "begin": 7375, + "end": 7419, + "name": "MLOAD", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "DUP1", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "SWAP2", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "SUB", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 7375, + "end": 7419, + "name": "REVERT", + "source": 5 + }, + { + "begin": 7189, + "end": 7444, + "name": "tag", + "source": 5, + "value": "392" + }, + { + "begin": 7189, + "end": 7444, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 7082, + "end": 7450, + "name": "POP", + "source": 5 + }, + { + "begin": 7082, + "end": 7450, + "name": "POP", + "source": 5 + }, + { + "begin": 7082, + "end": 7450, + "name": "POP", + "source": 5 + }, + { + "begin": 7082, + "end": 7450, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 6376, + "end": 6648, + "name": "tag", + "source": 5, + "value": "391" + }, + { + "begin": 6376, + "end": 6648, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 6479, + "end": 6483, + "name": "PUSH", + "source": 5, + "value": "0" + }, + { + "begin": 6533, + "end": 6534, + "name": "DUP1", + "source": 5 + }, + { + "begin": 6514, + "end": 6535, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6514, + "end": 6535, + "name": "AND", + "source": 5 + }, + { + "begin": 6514, + "end": 6521, + "name": "DUP4", + "source": 5 + }, + { + "begin": 6514, + "end": 6535, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6514, + "end": 6535, + "name": "AND", + "source": 5 + }, + { + "begin": 6514, + "end": 6535, + "name": "EQ", + "source": 5 + }, + { + "begin": 6514, + "end": 6535, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 6514, + "end": 6641, + "name": "DUP1", + "source": 5 + }, + { + "begin": 6514, + "end": 6641, + "name": "ISZERO", + "source": 5 + }, + { + "begin": 6514, + "end": 6641, + "name": "PUSH [tag]", + "source": 5, + "value": "398" + }, + { + "begin": 6514, + "end": 6641, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 6514, + "end": 6641, + "name": "POP", + "source": 5 + }, + { + "begin": 6561, + "end": 6568, + "name": "DUP3", + "source": 5 + }, + { + "begin": 6552, + "end": 6568, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6552, + "end": 6568, + "name": "AND", + "source": 5 + }, + { + "begin": 6552, + "end": 6557, + "name": "DUP5", + "source": 5 + }, + { + "begin": 6552, + "end": 6568, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6552, + "end": 6568, + "name": "AND", + "source": 5 + }, + { + "begin": 6552, + "end": 6568, + "name": "EQ", + "source": 5 + }, + { + "begin": 6552, + "end": 6604, + "name": "DUP1", + "source": 5 + }, + { + "begin": 6552, + "end": 6604, + "name": "PUSH [tag]", + "source": 5, + "value": "399" + }, + { + "begin": 6552, + "end": 6604, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 6552, + "end": 6604, + "name": "POP", + "source": 5 + }, + { + "begin": 6572, + "end": 6604, + "name": "PUSH [tag]", + "source": 5, + "value": "400" + }, + { + "begin": 6589, + "end": 6594, + "name": "DUP5", + "source": 5 + }, + { + "begin": 6596, + "end": 6603, + "name": "DUP5", + "source": 5 + }, + { + "begin": 6572, + "end": 6588, + "name": "PUSH [tag]", + "source": 5, + "value": "109" + }, + { + "begin": 6572, + "end": 6604, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 6572, + "end": 6604, + "name": "tag", + "source": 5, + "value": "400" + }, + { + "begin": 6572, + "end": 6604, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 6552, + "end": 6604, + "name": "tag", + "source": 5, + "value": "399" + }, + { + "begin": 6552, + "end": 6604, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 6552, + "end": 6640, + "name": "DUP1", + "source": 5 + }, + { + "begin": 6552, + "end": 6640, + "name": "PUSH [tag]", + "source": 5, + "value": "401" + }, + { + "begin": 6552, + "end": 6640, + "name": "JUMPI", + "source": 5 + }, + { + "begin": 6552, + "end": 6640, + "name": "POP", + "source": 5 + }, + { + "begin": 6633, + "end": 6640, + "name": "DUP3", + "source": 5 + }, + { + "begin": 6608, + "end": 6640, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6608, + "end": 6640, + "name": "AND", + "source": 5 + }, + { + "begin": 6608, + "end": 6629, + "name": "PUSH [tag]", + "source": 5, + "value": "402" + }, + { + "begin": 6621, + "end": 6628, + "name": "DUP4", + "source": 5 + }, + { + "begin": 6608, + "end": 6620, + "name": "PUSH [tag]", + "source": 5, + "value": "128" + }, + { + "begin": 6608, + "end": 6629, + "jumpType": "[in]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 6608, + "end": 6629, + "name": "tag", + "source": 5, + "value": "402" + }, + { + "begin": 6608, + "end": 6629, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 6608, + "end": 6640, + "name": "PUSH", + "source": 5, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6608, + "end": 6640, + "name": "AND", + "source": 5 + }, + { + "begin": 6608, + "end": 6640, + "name": "EQ", + "source": 5 + }, + { + "begin": 6552, + "end": 6640, + "name": "tag", + "source": 5, + "value": "401" + }, + { + "begin": 6552, + "end": 6640, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 6514, + "end": 6641, + "name": "tag", + "source": 5, + "value": "398" + }, + { + "begin": 6514, + "end": 6641, + "name": "JUMPDEST", + "source": 5 + }, + { + "begin": 6495, + "end": 6641, + "name": "SWAP1", + "source": 5 + }, + { + "begin": 6495, + "end": 6641, + "name": "POP", + "source": 5 + }, + { + "begin": 6376, + "end": 6648, + "name": "SWAP4", + "source": 5 + }, + { + "begin": 6376, + "end": 6648, + "name": "SWAP3", + "source": 5 + }, + { + "begin": 6376, + "end": 6648, + "name": "POP", + "source": 5 + }, + { + "begin": 6376, + "end": 6648, + "name": "POP", + "source": 5 + }, + { + "begin": 6376, + "end": 6648, + "name": "POP", + "source": 5 + }, + { + "begin": 6376, + "end": 6648, + "jumpType": "[out]", + "name": "JUMP", + "source": 5 + }, + { + "begin": 7, + "end": 82, + "name": "tag", + "source": 19, + "value": "403" + }, + { + "begin": 7, + "end": 82, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 40, + "end": 46, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 73, + "end": 75, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 67, + "end": 76, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 57, + "end": 76, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 57, + "end": 76, + "name": "POP", + "source": 19 + }, + { + "begin": 7, + "end": 82, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7, + "end": 82, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 88, + "end": 205, + "name": "tag", + "source": 19, + "value": "404" + }, + { + "begin": 88, + "end": 205, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 197, + "end": 198, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 194, + "end": 195, + "name": "DUP1", + "source": 19 + }, + { + "begin": 187, + "end": 199, + "name": "REVERT", + "source": 19 + }, + { + "begin": 211, + "end": 328, + "name": "tag", + "source": 19, + "value": "405" + }, + { + "begin": 211, + "end": 328, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 320, + "end": 321, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 317, + "end": 318, + "name": "DUP1", + "source": 19 + }, + { + "begin": 310, + "end": 322, + "name": "REVERT", + "source": 19 + }, + { + "begin": 334, + "end": 483, + "name": "tag", + "source": 19, + "value": "406" + }, + { + "begin": 334, + "end": 483, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 370, + "end": 377, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 410, + "end": 476, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFF00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 403, + "end": 408, + "name": "DUP3", + "source": 19 + }, + { + "begin": 399, + "end": 477, + "name": "AND", + "source": 19 + }, + { + "begin": 388, + "end": 477, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 388, + "end": 477, + "name": "POP", + "source": 19 + }, + { + "begin": 334, + "end": 483, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 334, + "end": 483, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 334, + "end": 483, + "name": "POP", + "source": 19 + }, + { + "begin": 334, + "end": 483, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 489, + "end": 609, + "name": "tag", + "source": 19, + "value": "407" + }, + { + "begin": 489, + "end": 609, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 561, + "end": 584, + "name": "PUSH [tag]", + "source": 19, + "value": "469" + }, + { + "begin": 578, + "end": 583, + "name": "DUP2", + "source": 19 + }, + { + "begin": 561, + "end": 584, + "name": "PUSH [tag]", + "source": 19, + "value": "406" + }, + { + "begin": 561, + "end": 584, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 561, + "end": 584, + "name": "tag", + "source": 19, + "value": "469" + }, + { + "begin": 561, + "end": 584, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 554, + "end": 559, + "name": "DUP2", + "source": 19 + }, + { + "begin": 551, + "end": 585, + "name": "EQ", + "source": 19 + }, + { + "begin": 541, + "end": 603, + "name": "PUSH [tag]", + "source": 19, + "value": "470" + }, + { + "begin": 541, + "end": 603, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 599, + "end": 600, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 596, + "end": 597, + "name": "DUP1", + "source": 19 + }, + { + "begin": 589, + "end": 601, + "name": "REVERT", + "source": 19 + }, + { + "begin": 541, + "end": 603, + "name": "tag", + "source": 19, + "value": "470" + }, + { + "begin": 541, + "end": 603, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 489, + "end": 609, + "name": "POP", + "source": 19 + }, + { + "begin": 489, + "end": 609, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 615, + "end": 752, + "name": "tag", + "source": 19, + "value": "408" + }, + { + "begin": 615, + "end": 752, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 660, + "end": 665, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 698, + "end": 704, + "name": "DUP2", + "source": 19 + }, + { + "begin": 685, + "end": 705, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 676, + "end": 705, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 676, + "end": 705, + "name": "POP", + "source": 19 + }, + { + "begin": 714, + "end": 746, + "name": "PUSH [tag]", + "source": 19, + "value": "472" + }, + { + "begin": 740, + "end": 745, + "name": "DUP2", + "source": 19 + }, + { + "begin": 714, + "end": 746, + "name": "PUSH [tag]", + "source": 19, + "value": "407" + }, + { + "begin": 714, + "end": 746, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 714, + "end": 746, + "name": "tag", + "source": 19, + "value": "472" + }, + { + "begin": 714, + "end": 746, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 615, + "end": 752, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 615, + "end": 752, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 615, + "end": 752, + "name": "POP", + "source": 19 + }, + { + "begin": 615, + "end": 752, + "name": "POP", + "source": 19 + }, + { + "begin": 615, + "end": 752, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 758, + "end": 1085, + "name": "tag", + "source": 19, + "value": "30" + }, + { + "begin": 758, + "end": 1085, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 816, + "end": 822, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 865, + "end": 867, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 853, + "end": 862, + "name": "DUP3", + "source": 19 + }, + { + "begin": 844, + "end": 851, + "name": "DUP5", + "source": 19 + }, + { + "begin": 840, + "end": 863, + "name": "SUB", + "source": 19 + }, + { + "begin": 836, + "end": 868, + "name": "SLT", + "source": 19 + }, + { + "begin": 833, + "end": 952, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 833, + "end": 952, + "name": "PUSH [tag]", + "source": 19, + "value": "474" + }, + { + "begin": 833, + "end": 952, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 871, + "end": 950, + "name": "PUSH [tag]", + "source": 19, + "value": "475" + }, + { + "begin": 871, + "end": 950, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 871, + "end": 950, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 871, + "end": 950, + "name": "tag", + "source": 19, + "value": "475" + }, + { + "begin": 871, + "end": 950, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 833, + "end": 952, + "name": "tag", + "source": 19, + "value": "474" + }, + { + "begin": 833, + "end": 952, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 991, + "end": 992, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1016, + "end": 1068, + "name": "PUSH [tag]", + "source": 19, + "value": "476" + }, + { + "begin": 1060, + "end": 1067, + "name": "DUP5", + "source": 19 + }, + { + "begin": 1051, + "end": 1057, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1040, + "end": 1049, + "name": "DUP6", + "source": 19 + }, + { + "begin": 1036, + "end": 1058, + "name": "ADD", + "source": 19 + }, + { + "begin": 1016, + "end": 1068, + "name": "PUSH [tag]", + "source": 19, + "value": "408" + }, + { + "begin": 1016, + "end": 1068, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1016, + "end": 1068, + "name": "tag", + "source": 19, + "value": "476" + }, + { + "begin": 1016, + "end": 1068, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1006, + "end": 1068, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 1006, + "end": 1068, + "name": "POP", + "source": 19 + }, + { + "begin": 962, + "end": 1078, + "name": "POP", + "source": 19 + }, + { + "begin": 758, + "end": 1085, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 758, + "end": 1085, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 758, + "end": 1085, + "name": "POP", + "source": 19 + }, + { + "begin": 758, + "end": 1085, + "name": "POP", + "source": 19 + }, + { + "begin": 758, + "end": 1085, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1091, + "end": 1181, + "name": "tag", + "source": 19, + "value": "409" + }, + { + "begin": 1091, + "end": 1181, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1125, + "end": 1132, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1168, + "end": 1173, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1161, + "end": 1174, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 1154, + "end": 1175, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 1143, + "end": 1175, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1143, + "end": 1175, + "name": "POP", + "source": 19 + }, + { + "begin": 1091, + "end": 1181, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 1091, + "end": 1181, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1091, + "end": 1181, + "name": "POP", + "source": 19 + }, + { + "begin": 1091, + "end": 1181, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1187, + "end": 1296, + "name": "tag", + "source": 19, + "value": "410" + }, + { + "begin": 1187, + "end": 1296, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1268, + "end": 1289, + "name": "PUSH [tag]", + "source": 19, + "value": "479" + }, + { + "begin": 1283, + "end": 1288, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1268, + "end": 1289, + "name": "PUSH [tag]", + "source": 19, + "value": "409" + }, + { + "begin": 1268, + "end": 1289, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1268, + "end": 1289, + "name": "tag", + "source": 19, + "value": "479" + }, + { + "begin": 1268, + "end": 1289, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1263, + "end": 1266, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1256, + "end": 1290, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 1187, + "end": 1296, + "name": "POP", + "source": 19 + }, + { + "begin": 1187, + "end": 1296, + "name": "POP", + "source": 19 + }, + { + "begin": 1187, + "end": 1296, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1302, + "end": 1512, + "name": "tag", + "source": 19, + "value": "33" + }, + { + "begin": 1302, + "end": 1512, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1389, + "end": 1393, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1427, + "end": 1429, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 1416, + "end": 1425, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1412, + "end": 1430, + "name": "ADD", + "source": 19 + }, + { + "begin": 1404, + "end": 1430, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1404, + "end": 1430, + "name": "POP", + "source": 19 + }, + { + "begin": 1440, + "end": 1505, + "name": "PUSH [tag]", + "source": 19, + "value": "481" + }, + { + "begin": 1502, + "end": 1503, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1491, + "end": 1500, + "name": "DUP4", + "source": 19 + }, + { + "begin": 1487, + "end": 1504, + "name": "ADD", + "source": 19 + }, + { + "begin": 1478, + "end": 1484, + "name": "DUP5", + "source": 19 + }, + { + "begin": 1440, + "end": 1505, + "name": "PUSH [tag]", + "source": 19, + "value": "410" + }, + { + "begin": 1440, + "end": 1505, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1440, + "end": 1505, + "name": "tag", + "source": 19, + "value": "481" + }, + { + "begin": 1440, + "end": 1505, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1302, + "end": 1512, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 1302, + "end": 1512, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 1302, + "end": 1512, + "name": "POP", + "source": 19 + }, + { + "begin": 1302, + "end": 1512, + "name": "POP", + "source": 19 + }, + { + "begin": 1302, + "end": 1512, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1518, + "end": 1617, + "name": "tag", + "source": 19, + "value": "411" + }, + { + "begin": 1518, + "end": 1617, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1570, + "end": 1576, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1604, + "end": 1609, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1598, + "end": 1610, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 1588, + "end": 1610, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1588, + "end": 1610, + "name": "POP", + "source": 19 + }, + { + "begin": 1518, + "end": 1617, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 1518, + "end": 1617, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1518, + "end": 1617, + "name": "POP", + "source": 19 + }, + { + "begin": 1518, + "end": 1617, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1623, + "end": 1792, + "name": "tag", + "source": 19, + "value": "412" + }, + { + "begin": 1623, + "end": 1792, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1707, + "end": 1718, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1741, + "end": 1747, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1736, + "end": 1739, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1729, + "end": 1748, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 1781, + "end": 1785, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 1776, + "end": 1779, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1772, + "end": 1786, + "name": "ADD", + "source": 19 + }, + { + "begin": 1757, + "end": 1786, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1757, + "end": 1786, + "name": "POP", + "source": 19 + }, + { + "begin": 1623, + "end": 1792, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 1623, + "end": 1792, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 1623, + "end": 1792, + "name": "POP", + "source": 19 + }, + { + "begin": 1623, + "end": 1792, + "name": "POP", + "source": 19 + }, + { + "begin": 1623, + "end": 1792, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 1798, + "end": 2046, + "name": "tag", + "source": 19, + "value": "413" + }, + { + "begin": 1798, + "end": 2046, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1880, + "end": 1881, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 1890, + "end": 2003, + "name": "tag", + "source": 19, + "value": "485" + }, + { + "begin": 1890, + "end": 2003, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 1904, + "end": 1910, + "name": "DUP4", + "source": 19 + }, + { + "begin": 1901, + "end": 1902, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1898, + "end": 1911, + "name": "LT", + "source": 19 + }, + { + "begin": 1890, + "end": 2003, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 1890, + "end": 2003, + "name": "PUSH [tag]", + "source": 19, + "value": "487" + }, + { + "begin": 1890, + "end": 2003, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 1989, + "end": 1990, + "name": "DUP1", + "source": 19 + }, + { + "begin": 1984, + "end": 1987, + "name": "DUP3", + "source": 19 + }, + { + "begin": 1980, + "end": 1991, + "name": "ADD", + "source": 19 + }, + { + "begin": 1974, + "end": 1992, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 1970, + "end": 1971, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1965, + "end": 1968, + "name": "DUP5", + "source": 19 + }, + { + "begin": 1961, + "end": 1972, + "name": "ADD", + "source": 19 + }, + { + "begin": 1954, + "end": 1993, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 1926, + "end": 1928, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 1923, + "end": 1924, + "name": "DUP2", + "source": 19 + }, + { + "begin": 1919, + "end": 1929, + "name": "ADD", + "source": 19 + }, + { + "begin": 1914, + "end": 1929, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 1914, + "end": 1929, + "name": "POP", + "source": 19 + }, + { + "begin": 1890, + "end": 2003, + "name": "PUSH [tag]", + "source": 19, + "value": "485" + }, + { + "begin": 1890, + "end": 2003, + "name": "JUMP", + "source": 19 + }, + { + "begin": 1890, + "end": 2003, + "name": "tag", + "source": 19, + "value": "487" + }, + { + "begin": 1890, + "end": 2003, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2037, + "end": 2038, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2028, + "end": 2034, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2023, + "end": 2026, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2019, + "end": 2035, + "name": "ADD", + "source": 19 + }, + { + "begin": 2012, + "end": 2039, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 1860, + "end": 2046, + "name": "POP", + "source": 19 + }, + { + "begin": 1798, + "end": 2046, + "name": "POP", + "source": 19 + }, + { + "begin": 1798, + "end": 2046, + "name": "POP", + "source": 19 + }, + { + "begin": 1798, + "end": 2046, + "name": "POP", + "source": 19 + }, + { + "begin": 1798, + "end": 2046, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2052, + "end": 2154, + "name": "tag", + "source": 19, + "value": "414" + }, + { + "begin": 2052, + "end": 2154, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2093, + "end": 2099, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2144, + "end": 2146, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 2140, + "end": 2147, + "name": "NOT", + "source": 19 + }, + { + "begin": 2135, + "end": 2137, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 2128, + "end": 2133, + "name": "DUP4", + "source": 19 + }, + { + "begin": 2124, + "end": 2138, + "name": "ADD", + "source": 19 + }, + { + "begin": 2120, + "end": 2148, + "name": "AND", + "source": 19 + }, + { + "begin": 2110, + "end": 2148, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 2110, + "end": 2148, + "name": "POP", + "source": 19 + }, + { + "begin": 2052, + "end": 2154, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2052, + "end": 2154, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 2052, + "end": 2154, + "name": "POP", + "source": 19 + }, + { + "begin": 2052, + "end": 2154, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2160, + "end": 2537, + "name": "tag", + "source": 19, + "value": "415" + }, + { + "begin": 2160, + "end": 2537, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2248, + "end": 2251, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2276, + "end": 2315, + "name": "PUSH [tag]", + "source": 19, + "value": "490" + }, + { + "begin": 2309, + "end": 2314, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2276, + "end": 2315, + "name": "PUSH [tag]", + "source": 19, + "value": "411" + }, + { + "begin": 2276, + "end": 2315, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2276, + "end": 2315, + "name": "tag", + "source": 19, + "value": "490" + }, + { + "begin": 2276, + "end": 2315, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2331, + "end": 2402, + "name": "PUSH [tag]", + "source": 19, + "value": "491" + }, + { + "begin": 2395, + "end": 2401, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2390, + "end": 2393, + "name": "DUP6", + "source": 19 + }, + { + "begin": 2331, + "end": 2402, + "name": "PUSH [tag]", + "source": 19, + "value": "412" + }, + { + "begin": 2331, + "end": 2402, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2331, + "end": 2402, + "name": "tag", + "source": 19, + "value": "491" + }, + { + "begin": 2331, + "end": 2402, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2324, + "end": 2402, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 2324, + "end": 2402, + "name": "POP", + "source": 19 + }, + { + "begin": 2411, + "end": 2476, + "name": "PUSH [tag]", + "source": 19, + "value": "492" + }, + { + "begin": 2469, + "end": 2475, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2464, + "end": 2467, + "name": "DUP6", + "source": 19 + }, + { + "begin": 2457, + "end": 2461, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 2450, + "end": 2455, + "name": "DUP7", + "source": 19 + }, + { + "begin": 2446, + "end": 2462, + "name": "ADD", + "source": 19 + }, + { + "begin": 2411, + "end": 2476, + "name": "PUSH [tag]", + "source": 19, + "value": "413" + }, + { + "begin": 2411, + "end": 2476, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2411, + "end": 2476, + "name": "tag", + "source": 19, + "value": "492" + }, + { + "begin": 2411, + "end": 2476, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2501, + "end": 2530, + "name": "PUSH [tag]", + "source": 19, + "value": "493" + }, + { + "begin": 2523, + "end": 2529, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2501, + "end": 2530, + "name": "PUSH [tag]", + "source": 19, + "value": "414" + }, + { + "begin": 2501, + "end": 2530, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2501, + "end": 2530, + "name": "tag", + "source": 19, + "value": "493" + }, + { + "begin": 2501, + "end": 2530, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2496, + "end": 2499, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2492, + "end": 2531, + "name": "ADD", + "source": 19 + }, + { + "begin": 2485, + "end": 2531, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2485, + "end": 2531, + "name": "POP", + "source": 19 + }, + { + "begin": 2252, + "end": 2537, + "name": "POP", + "source": 19 + }, + { + "begin": 2160, + "end": 2537, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 2160, + "end": 2537, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2160, + "end": 2537, + "name": "POP", + "source": 19 + }, + { + "begin": 2160, + "end": 2537, + "name": "POP", + "source": 19 + }, + { + "begin": 2160, + "end": 2537, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2543, + "end": 2856, + "name": "tag", + "source": 19, + "value": "37" + }, + { + "begin": 2543, + "end": 2856, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2656, + "end": 2660, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2694, + "end": 2696, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 2683, + "end": 2692, + "name": "DUP3", + "source": 19 + }, + { + "begin": 2679, + "end": 2697, + "name": "ADD", + "source": 19 + }, + { + "begin": 2671, + "end": 2697, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 2671, + "end": 2697, + "name": "POP", + "source": 19 + }, + { + "begin": 2743, + "end": 2752, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2737, + "end": 2741, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2733, + "end": 2753, + "name": "SUB", + "source": 19 + }, + { + "begin": 2729, + "end": 2730, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2718, + "end": 2727, + "name": "DUP4", + "source": 19 + }, + { + "begin": 2714, + "end": 2731, + "name": "ADD", + "source": 19 + }, + { + "begin": 2707, + "end": 2754, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 2771, + "end": 2849, + "name": "PUSH [tag]", + "source": 19, + "value": "495" + }, + { + "begin": 2844, + "end": 2848, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2835, + "end": 2841, + "name": "DUP5", + "source": 19 + }, + { + "begin": 2771, + "end": 2849, + "name": "PUSH [tag]", + "source": 19, + "value": "415" + }, + { + "begin": 2771, + "end": 2849, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2771, + "end": 2849, + "name": "tag", + "source": 19, + "value": "495" + }, + { + "begin": 2771, + "end": 2849, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2763, + "end": 2849, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 2763, + "end": 2849, + "name": "POP", + "source": 19 + }, + { + "begin": 2543, + "end": 2856, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 2543, + "end": 2856, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2543, + "end": 2856, + "name": "POP", + "source": 19 + }, + { + "begin": 2543, + "end": 2856, + "name": "POP", + "source": 19 + }, + { + "begin": 2543, + "end": 2856, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2862, + "end": 2939, + "name": "tag", + "source": 19, + "value": "416" + }, + { + "begin": 2862, + "end": 2939, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2899, + "end": 2906, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 2928, + "end": 2933, + "name": "DUP2", + "source": 19 + }, + { + "begin": 2917, + "end": 2933, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 2917, + "end": 2933, + "name": "POP", + "source": 19 + }, + { + "begin": 2862, + "end": 2939, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 2862, + "end": 2939, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 2862, + "end": 2939, + "name": "POP", + "source": 19 + }, + { + "begin": 2862, + "end": 2939, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 2945, + "end": 3067, + "name": "tag", + "source": 19, + "value": "417" + }, + { + "begin": 2945, + "end": 3067, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3018, + "end": 3042, + "name": "PUSH [tag]", + "source": 19, + "value": "498" + }, + { + "begin": 3036, + "end": 3041, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3018, + "end": 3042, + "name": "PUSH [tag]", + "source": 19, + "value": "416" + }, + { + "begin": 3018, + "end": 3042, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3018, + "end": 3042, + "name": "tag", + "source": 19, + "value": "498" + }, + { + "begin": 3018, + "end": 3042, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3011, + "end": 3016, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3008, + "end": 3043, + "name": "EQ", + "source": 19 + }, + { + "begin": 2998, + "end": 3061, + "name": "PUSH [tag]", + "source": 19, + "value": "499" + }, + { + "begin": 2998, + "end": 3061, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 3057, + "end": 3058, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3054, + "end": 3055, + "name": "DUP1", + "source": 19 + }, + { + "begin": 3047, + "end": 3059, + "name": "REVERT", + "source": 19 + }, + { + "begin": 2998, + "end": 3061, + "name": "tag", + "source": 19, + "value": "499" + }, + { + "begin": 2998, + "end": 3061, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 2945, + "end": 3067, + "name": "POP", + "source": 19 + }, + { + "begin": 2945, + "end": 3067, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3073, + "end": 3212, + "name": "tag", + "source": 19, + "value": "418" + }, + { + "begin": 3073, + "end": 3212, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3119, + "end": 3124, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3157, + "end": 3163, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3144, + "end": 3164, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 3135, + "end": 3164, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3135, + "end": 3164, + "name": "POP", + "source": 19 + }, + { + "begin": 3173, + "end": 3206, + "name": "PUSH [tag]", + "source": 19, + "value": "501" + }, + { + "begin": 3200, + "end": 3205, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3173, + "end": 3206, + "name": "PUSH [tag]", + "source": 19, + "value": "417" + }, + { + "begin": 3173, + "end": 3206, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3173, + "end": 3206, + "name": "tag", + "source": 19, + "value": "501" + }, + { + "begin": 3173, + "end": 3206, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3073, + "end": 3212, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 3073, + "end": 3212, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3073, + "end": 3212, + "name": "POP", + "source": 19 + }, + { + "begin": 3073, + "end": 3212, + "name": "POP", + "source": 19 + }, + { + "begin": 3073, + "end": 3212, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3218, + "end": 3547, + "name": "tag", + "source": 19, + "value": "40" + }, + { + "begin": 3218, + "end": 3547, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3277, + "end": 3283, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3326, + "end": 3328, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 3314, + "end": 3323, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3305, + "end": 3312, + "name": "DUP5", + "source": 19 + }, + { + "begin": 3301, + "end": 3324, + "name": "SUB", + "source": 19 + }, + { + "begin": 3297, + "end": 3329, + "name": "SLT", + "source": 19 + }, + { + "begin": 3294, + "end": 3413, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 3294, + "end": 3413, + "name": "PUSH [tag]", + "source": 19, + "value": "503" + }, + { + "begin": 3294, + "end": 3413, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 3332, + "end": 3411, + "name": "PUSH [tag]", + "source": 19, + "value": "504" + }, + { + "begin": 3332, + "end": 3411, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 3332, + "end": 3411, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3332, + "end": 3411, + "name": "tag", + "source": 19, + "value": "504" + }, + { + "begin": 3332, + "end": 3411, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3294, + "end": 3413, + "name": "tag", + "source": 19, + "value": "503" + }, + { + "begin": 3294, + "end": 3413, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3452, + "end": 3453, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3477, + "end": 3530, + "name": "PUSH [tag]", + "source": 19, + "value": "505" + }, + { + "begin": 3522, + "end": 3529, + "name": "DUP5", + "source": 19 + }, + { + "begin": 3513, + "end": 3519, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3502, + "end": 3511, + "name": "DUP6", + "source": 19 + }, + { + "begin": 3498, + "end": 3520, + "name": "ADD", + "source": 19 + }, + { + "begin": 3477, + "end": 3530, + "name": "PUSH [tag]", + "source": 19, + "value": "418" + }, + { + "begin": 3477, + "end": 3530, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3477, + "end": 3530, + "name": "tag", + "source": 19, + "value": "505" + }, + { + "begin": 3477, + "end": 3530, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3467, + "end": 3530, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3467, + "end": 3530, + "name": "POP", + "source": 19 + }, + { + "begin": 3423, + "end": 3540, + "name": "POP", + "source": 19 + }, + { + "begin": 3218, + "end": 3547, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 3218, + "end": 3547, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3218, + "end": 3547, + "name": "POP", + "source": 19 + }, + { + "begin": 3218, + "end": 3547, + "name": "POP", + "source": 19 + }, + { + "begin": 3218, + "end": 3547, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3553, + "end": 3679, + "name": "tag", + "source": 19, + "value": "419" + }, + { + "begin": 3553, + "end": 3679, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3590, + "end": 3597, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3630, + "end": 3672, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3623, + "end": 3628, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3619, + "end": 3673, + "name": "AND", + "source": 19 + }, + { + "begin": 3608, + "end": 3673, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3608, + "end": 3673, + "name": "POP", + "source": 19 + }, + { + "begin": 3553, + "end": 3679, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3553, + "end": 3679, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3553, + "end": 3679, + "name": "POP", + "source": 19 + }, + { + "begin": 3553, + "end": 3679, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3685, + "end": 3781, + "name": "tag", + "source": 19, + "value": "420" + }, + { + "begin": 3685, + "end": 3781, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3722, + "end": 3729, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 3751, + "end": 3775, + "name": "PUSH [tag]", + "source": 19, + "value": "508" + }, + { + "begin": 3769, + "end": 3774, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3751, + "end": 3775, + "name": "PUSH [tag]", + "source": 19, + "value": "419" + }, + { + "begin": 3751, + "end": 3775, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3751, + "end": 3775, + "name": "tag", + "source": 19, + "value": "508" + }, + { + "begin": 3751, + "end": 3775, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3740, + "end": 3775, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3740, + "end": 3775, + "name": "POP", + "source": 19 + }, + { + "begin": 3685, + "end": 3781, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3685, + "end": 3781, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 3685, + "end": 3781, + "name": "POP", + "source": 19 + }, + { + "begin": 3685, + "end": 3781, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3787, + "end": 3905, + "name": "tag", + "source": 19, + "value": "421" + }, + { + "begin": 3787, + "end": 3905, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3874, + "end": 3898, + "name": "PUSH [tag]", + "source": 19, + "value": "510" + }, + { + "begin": 3892, + "end": 3897, + "name": "DUP2", + "source": 19 + }, + { + "begin": 3874, + "end": 3898, + "name": "PUSH [tag]", + "source": 19, + "value": "420" + }, + { + "begin": 3874, + "end": 3898, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3874, + "end": 3898, + "name": "tag", + "source": 19, + "value": "510" + }, + { + "begin": 3874, + "end": 3898, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3869, + "end": 3872, + "name": "DUP3", + "source": 19 + }, + { + "begin": 3862, + "end": 3899, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 3787, + "end": 3905, + "name": "POP", + "source": 19 + }, + { + "begin": 3787, + "end": 3905, + "name": "POP", + "source": 19 + }, + { + "begin": 3787, + "end": 3905, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 3911, + "end": 4133, + "name": "tag", + "source": 19, + "value": "43" + }, + { + "begin": 3911, + "end": 4133, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4004, + "end": 4008, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4042, + "end": 4044, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 4031, + "end": 4040, + "name": "DUP3", + "source": 19 + }, + { + "begin": 4027, + "end": 4045, + "name": "ADD", + "source": 19 + }, + { + "begin": 4019, + "end": 4045, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4019, + "end": 4045, + "name": "POP", + "source": 19 + }, + { + "begin": 4055, + "end": 4126, + "name": "PUSH [tag]", + "source": 19, + "value": "512" + }, + { + "begin": 4123, + "end": 4124, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4112, + "end": 4121, + "name": "DUP4", + "source": 19 + }, + { + "begin": 4108, + "end": 4125, + "name": "ADD", + "source": 19 + }, + { + "begin": 4099, + "end": 4105, + "name": "DUP5", + "source": 19 + }, + { + "begin": 4055, + "end": 4126, + "name": "PUSH [tag]", + "source": 19, + "value": "421" + }, + { + "begin": 4055, + "end": 4126, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4055, + "end": 4126, + "name": "tag", + "source": 19, + "value": "512" + }, + { + "begin": 4055, + "end": 4126, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 3911, + "end": 4133, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 3911, + "end": 4133, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 3911, + "end": 4133, + "name": "POP", + "source": 19 + }, + { + "begin": 3911, + "end": 4133, + "name": "POP", + "source": 19 + }, + { + "begin": 3911, + "end": 4133, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4139, + "end": 4261, + "name": "tag", + "source": 19, + "value": "422" + }, + { + "begin": 4139, + "end": 4261, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4212, + "end": 4236, + "name": "PUSH [tag]", + "source": 19, + "value": "514" + }, + { + "begin": 4230, + "end": 4235, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4212, + "end": 4236, + "name": "PUSH [tag]", + "source": 19, + "value": "420" + }, + { + "begin": 4212, + "end": 4236, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4212, + "end": 4236, + "name": "tag", + "source": 19, + "value": "514" + }, + { + "begin": 4212, + "end": 4236, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4205, + "end": 4210, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4202, + "end": 4237, + "name": "EQ", + "source": 19 + }, + { + "begin": 4192, + "end": 4255, + "name": "PUSH [tag]", + "source": 19, + "value": "515" + }, + { + "begin": 4192, + "end": 4255, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 4251, + "end": 4252, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4248, + "end": 4249, + "name": "DUP1", + "source": 19 + }, + { + "begin": 4241, + "end": 4253, + "name": "REVERT", + "source": 19 + }, + { + "begin": 4192, + "end": 4255, + "name": "tag", + "source": 19, + "value": "515" + }, + { + "begin": 4192, + "end": 4255, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4139, + "end": 4261, + "name": "POP", + "source": 19 + }, + { + "begin": 4139, + "end": 4261, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4267, + "end": 4406, + "name": "tag", + "source": 19, + "value": "423" + }, + { + "begin": 4267, + "end": 4406, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4313, + "end": 4318, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4351, + "end": 4357, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4338, + "end": 4358, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 4329, + "end": 4358, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4329, + "end": 4358, + "name": "POP", + "source": 19 + }, + { + "begin": 4367, + "end": 4400, + "name": "PUSH [tag]", + "source": 19, + "value": "517" + }, + { + "begin": 4394, + "end": 4399, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4367, + "end": 4400, + "name": "PUSH [tag]", + "source": 19, + "value": "422" + }, + { + "begin": 4367, + "end": 4400, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4367, + "end": 4400, + "name": "tag", + "source": 19, + "value": "517" + }, + { + "begin": 4367, + "end": 4400, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4267, + "end": 4406, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 4267, + "end": 4406, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 4267, + "end": 4406, + "name": "POP", + "source": 19 + }, + { + "begin": 4267, + "end": 4406, + "name": "POP", + "source": 19 + }, + { + "begin": 4267, + "end": 4406, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4412, + "end": 4886, + "name": "tag", + "source": 19, + "value": "46" + }, + { + "begin": 4412, + "end": 4886, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4480, + "end": 4486, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4488, + "end": 4494, + "name": "DUP1", + "source": 19 + }, + { + "begin": 4537, + "end": 4539, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 4525, + "end": 4534, + "name": "DUP4", + "source": 19 + }, + { + "begin": 4516, + "end": 4523, + "name": "DUP6", + "source": 19 + }, + { + "begin": 4512, + "end": 4535, + "name": "SUB", + "source": 19 + }, + { + "begin": 4508, + "end": 4540, + "name": "SLT", + "source": 19 + }, + { + "begin": 4505, + "end": 4624, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 4505, + "end": 4624, + "name": "PUSH [tag]", + "source": 19, + "value": "519" + }, + { + "begin": 4505, + "end": 4624, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 4543, + "end": 4622, + "name": "PUSH [tag]", + "source": 19, + "value": "520" + }, + { + "begin": 4543, + "end": 4622, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 4543, + "end": 4622, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4543, + "end": 4622, + "name": "tag", + "source": 19, + "value": "520" + }, + { + "begin": 4543, + "end": 4622, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4505, + "end": 4624, + "name": "tag", + "source": 19, + "value": "519" + }, + { + "begin": 4505, + "end": 4624, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4663, + "end": 4664, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 4688, + "end": 4741, + "name": "PUSH [tag]", + "source": 19, + "value": "521" + }, + { + "begin": 4733, + "end": 4740, + "name": "DUP6", + "source": 19 + }, + { + "begin": 4724, + "end": 4730, + "name": "DUP3", + "source": 19 + }, + { + "begin": 4713, + "end": 4722, + "name": "DUP7", + "source": 19 + }, + { + "begin": 4709, + "end": 4731, + "name": "ADD", + "source": 19 + }, + { + "begin": 4688, + "end": 4741, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 4688, + "end": 4741, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4688, + "end": 4741, + "name": "tag", + "source": 19, + "value": "521" + }, + { + "begin": 4688, + "end": 4741, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4678, + "end": 4741, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 4678, + "end": 4741, + "name": "POP", + "source": 19 + }, + { + "begin": 4634, + "end": 4751, + "name": "POP", + "source": 19 + }, + { + "begin": 4790, + "end": 4792, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 4816, + "end": 4869, + "name": "PUSH [tag]", + "source": 19, + "value": "522" + }, + { + "begin": 4861, + "end": 4868, + "name": "DUP6", + "source": 19 + }, + { + "begin": 4852, + "end": 4858, + "name": "DUP3", + "source": 19 + }, + { + "begin": 4841, + "end": 4850, + "name": "DUP7", + "source": 19 + }, + { + "begin": 4837, + "end": 4859, + "name": "ADD", + "source": 19 + }, + { + "begin": 4816, + "end": 4869, + "name": "PUSH [tag]", + "source": 19, + "value": "418" + }, + { + "begin": 4816, + "end": 4869, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4816, + "end": 4869, + "name": "tag", + "source": 19, + "value": "522" + }, + { + "begin": 4816, + "end": 4869, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4806, + "end": 4869, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 4806, + "end": 4869, + "name": "POP", + "source": 19 + }, + { + "begin": 4761, + "end": 4879, + "name": "POP", + "source": 19 + }, + { + "begin": 4412, + "end": 4886, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 4412, + "end": 4886, + "name": "POP", + "source": 19 + }, + { + "begin": 4412, + "end": 4886, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 4412, + "end": 4886, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 4412, + "end": 4886, + "name": "POP", + "source": 19 + }, + { + "begin": 4412, + "end": 4886, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4892, + "end": 5010, + "name": "tag", + "source": 19, + "value": "424" + }, + { + "begin": 4892, + "end": 5010, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4979, + "end": 5003, + "name": "PUSH [tag]", + "source": 19, + "value": "524" + }, + { + "begin": 4997, + "end": 5002, + "name": "DUP2", + "source": 19 + }, + { + "begin": 4979, + "end": 5003, + "name": "PUSH [tag]", + "source": 19, + "value": "416" + }, + { + "begin": 4979, + "end": 5003, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 4979, + "end": 5003, + "name": "tag", + "source": 19, + "value": "524" + }, + { + "begin": 4979, + "end": 5003, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 4974, + "end": 4977, + "name": "DUP3", + "source": 19 + }, + { + "begin": 4967, + "end": 5004, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 4892, + "end": 5010, + "name": "POP", + "source": 19 + }, + { + "begin": 4892, + "end": 5010, + "name": "POP", + "source": 19 + }, + { + "begin": 4892, + "end": 5010, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5016, + "end": 5238, + "name": "tag", + "source": 19, + "value": "51" + }, + { + "begin": 5016, + "end": 5238, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5109, + "end": 5113, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5147, + "end": 5149, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 5136, + "end": 5145, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5132, + "end": 5150, + "name": "ADD", + "source": 19 + }, + { + "begin": 5124, + "end": 5150, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 5124, + "end": 5150, + "name": "POP", + "source": 19 + }, + { + "begin": 5160, + "end": 5231, + "name": "PUSH [tag]", + "source": 19, + "value": "526" + }, + { + "begin": 5228, + "end": 5229, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5217, + "end": 5226, + "name": "DUP4", + "source": 19 + }, + { + "begin": 5213, + "end": 5230, + "name": "ADD", + "source": 19 + }, + { + "begin": 5204, + "end": 5210, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5160, + "end": 5231, + "name": "PUSH [tag]", + "source": 19, + "value": "424" + }, + { + "begin": 5160, + "end": 5231, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5160, + "end": 5231, + "name": "tag", + "source": 19, + "value": "526" + }, + { + "begin": 5160, + "end": 5231, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5016, + "end": 5238, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 5016, + "end": 5238, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 5016, + "end": 5238, + "name": "POP", + "source": 19 + }, + { + "begin": 5016, + "end": 5238, + "name": "POP", + "source": 19 + }, + { + "begin": 5016, + "end": 5238, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5244, + "end": 5863, + "name": "tag", + "source": 19, + "value": "54" + }, + { + "begin": 5244, + "end": 5863, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5321, + "end": 5327, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5329, + "end": 5335, + "name": "DUP1", + "source": 19 + }, + { + "begin": 5337, + "end": 5343, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5386, + "end": 5388, + "name": "PUSH", + "source": 19, + "value": "60" + }, + { + "begin": 5374, + "end": 5383, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5365, + "end": 5372, + "name": "DUP7", + "source": 19 + }, + { + "begin": 5361, + "end": 5384, + "name": "SUB", + "source": 19 + }, + { + "begin": 5357, + "end": 5389, + "name": "SLT", + "source": 19 + }, + { + "begin": 5354, + "end": 5473, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 5354, + "end": 5473, + "name": "PUSH [tag]", + "source": 19, + "value": "528" + }, + { + "begin": 5354, + "end": 5473, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 5392, + "end": 5471, + "name": "PUSH [tag]", + "source": 19, + "value": "529" + }, + { + "begin": 5392, + "end": 5471, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 5392, + "end": 5471, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5392, + "end": 5471, + "name": "tag", + "source": 19, + "value": "529" + }, + { + "begin": 5392, + "end": 5471, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5354, + "end": 5473, + "name": "tag", + "source": 19, + "value": "528" + }, + { + "begin": 5354, + "end": 5473, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5512, + "end": 5513, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5537, + "end": 5590, + "name": "PUSH [tag]", + "source": 19, + "value": "530" + }, + { + "begin": 5582, + "end": 5589, + "name": "DUP7", + "source": 19 + }, + { + "begin": 5573, + "end": 5579, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5562, + "end": 5571, + "name": "DUP8", + "source": 19 + }, + { + "begin": 5558, + "end": 5580, + "name": "ADD", + "source": 19 + }, + { + "begin": 5537, + "end": 5590, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 5537, + "end": 5590, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5537, + "end": 5590, + "name": "tag", + "source": 19, + "value": "530" + }, + { + "begin": 5537, + "end": 5590, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5527, + "end": 5590, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 5527, + "end": 5590, + "name": "POP", + "source": 19 + }, + { + "begin": 5483, + "end": 5600, + "name": "POP", + "source": 19 + }, + { + "begin": 5639, + "end": 5641, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 5665, + "end": 5718, + "name": "PUSH [tag]", + "source": 19, + "value": "531" + }, + { + "begin": 5710, + "end": 5717, + "name": "DUP7", + "source": 19 + }, + { + "begin": 5701, + "end": 5707, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5690, + "end": 5699, + "name": "DUP8", + "source": 19 + }, + { + "begin": 5686, + "end": 5708, + "name": "ADD", + "source": 19 + }, + { + "begin": 5665, + "end": 5718, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 5665, + "end": 5718, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5665, + "end": 5718, + "name": "tag", + "source": 19, + "value": "531" + }, + { + "begin": 5665, + "end": 5718, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5655, + "end": 5718, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 5655, + "end": 5718, + "name": "POP", + "source": 19 + }, + { + "begin": 5610, + "end": 5728, + "name": "POP", + "source": 19 + }, + { + "begin": 5767, + "end": 5769, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 5793, + "end": 5846, + "name": "PUSH [tag]", + "source": 19, + "value": "532" + }, + { + "begin": 5838, + "end": 5845, + "name": "DUP7", + "source": 19 + }, + { + "begin": 5829, + "end": 5835, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5818, + "end": 5827, + "name": "DUP8", + "source": 19 + }, + { + "begin": 5814, + "end": 5836, + "name": "ADD", + "source": 19 + }, + { + "begin": 5793, + "end": 5846, + "name": "PUSH [tag]", + "source": 19, + "value": "418" + }, + { + "begin": 5793, + "end": 5846, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5793, + "end": 5846, + "name": "tag", + "source": 19, + "value": "532" + }, + { + "begin": 5793, + "end": 5846, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5783, + "end": 5846, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 5783, + "end": 5846, + "name": "POP", + "source": 19 + }, + { + "begin": 5738, + "end": 5856, + "name": "POP", + "source": 19 + }, + { + "begin": 5244, + "end": 5863, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 5244, + "end": 5863, + "name": "POP", + "source": 19 + }, + { + "begin": 5244, + "end": 5863, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 5244, + "end": 5863, + "name": "POP", + "source": 19 + }, + { + "begin": 5244, + "end": 5863, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 5244, + "end": 5863, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5869, + "end": 6198, + "name": "tag", + "source": 19, + "value": "62" + }, + { + "begin": 5869, + "end": 6198, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5928, + "end": 5934, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 5977, + "end": 5979, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 5965, + "end": 5974, + "name": "DUP3", + "source": 19 + }, + { + "begin": 5956, + "end": 5963, + "name": "DUP5", + "source": 19 + }, + { + "begin": 5952, + "end": 5975, + "name": "SUB", + "source": 19 + }, + { + "begin": 5948, + "end": 5980, + "name": "SLT", + "source": 19 + }, + { + "begin": 5945, + "end": 6064, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 5945, + "end": 6064, + "name": "PUSH [tag]", + "source": 19, + "value": "534" + }, + { + "begin": 5945, + "end": 6064, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 5983, + "end": 6062, + "name": "PUSH [tag]", + "source": 19, + "value": "535" + }, + { + "begin": 5983, + "end": 6062, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 5983, + "end": 6062, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 5983, + "end": 6062, + "name": "tag", + "source": 19, + "value": "535" + }, + { + "begin": 5983, + "end": 6062, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 5945, + "end": 6064, + "name": "tag", + "source": 19, + "value": "534" + }, + { + "begin": 5945, + "end": 6064, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6103, + "end": 6104, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6128, + "end": 6181, + "name": "PUSH [tag]", + "source": 19, + "value": "536" + }, + { + "begin": 6173, + "end": 6180, + "name": "DUP5", + "source": 19 + }, + { + "begin": 6164, + "end": 6170, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6153, + "end": 6162, + "name": "DUP6", + "source": 19 + }, + { + "begin": 6149, + "end": 6171, + "name": "ADD", + "source": 19 + }, + { + "begin": 6128, + "end": 6181, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 6128, + "end": 6181, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6128, + "end": 6181, + "name": "tag", + "source": 19, + "value": "536" + }, + { + "begin": 6128, + "end": 6181, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6118, + "end": 6181, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 6118, + "end": 6181, + "name": "POP", + "source": 19 + }, + { + "begin": 6074, + "end": 6191, + "name": "POP", + "source": 19 + }, + { + "begin": 5869, + "end": 6198, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 5869, + "end": 6198, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 5869, + "end": 6198, + "name": "POP", + "source": 19 + }, + { + "begin": 5869, + "end": 6198, + "name": "POP", + "source": 19 + }, + { + "begin": 5869, + "end": 6198, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6204, + "end": 6321, + "name": "tag", + "source": 19, + "value": "425" + }, + { + "begin": 6204, + "end": 6321, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6313, + "end": 6314, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6310, + "end": 6311, + "name": "DUP1", + "source": 19 + }, + { + "begin": 6303, + "end": 6315, + "name": "REVERT", + "source": 19 + }, + { + "begin": 6327, + "end": 6444, + "name": "tag", + "source": 19, + "value": "426" + }, + { + "begin": 6327, + "end": 6444, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6436, + "end": 6437, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6433, + "end": 6434, + "name": "DUP1", + "source": 19 + }, + { + "begin": 6426, + "end": 6438, + "name": "REVERT", + "source": 19 + }, + { + "begin": 6450, + "end": 6630, + "name": "tag", + "source": 19, + "value": "250" + }, + { + "begin": 6450, + "end": 6630, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6498, + "end": 6575, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 6495, + "end": 6496, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6488, + "end": 6576, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 6595, + "end": 6599, + "name": "PUSH", + "source": 19, + "value": "41" + }, + { + "begin": 6592, + "end": 6593, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 6585, + "end": 6600, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 6619, + "end": 6623, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 6616, + "end": 6617, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6609, + "end": 6624, + "name": "REVERT", + "source": 19 + }, + { + "begin": 6636, + "end": 6917, + "name": "tag", + "source": 19, + "value": "427" + }, + { + "begin": 6636, + "end": 6917, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6719, + "end": 6746, + "name": "PUSH [tag]", + "source": 19, + "value": "541" + }, + { + "begin": 6741, + "end": 6745, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6719, + "end": 6746, + "name": "PUSH [tag]", + "source": 19, + "value": "414" + }, + { + "begin": 6719, + "end": 6746, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6719, + "end": 6746, + "name": "tag", + "source": 19, + "value": "541" + }, + { + "begin": 6719, + "end": 6746, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6711, + "end": 6717, + "name": "DUP2", + "source": 19 + }, + { + "begin": 6707, + "end": 6747, + "name": "ADD", + "source": 19 + }, + { + "begin": 6849, + "end": 6855, + "name": "DUP2", + "source": 19 + }, + { + "begin": 6837, + "end": 6847, + "name": "DUP2", + "source": 19 + }, + { + "begin": 6834, + "end": 6856, + "name": "LT", + "source": 19 + }, + { + "begin": 6813, + "end": 6831, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 6801, + "end": 6811, + "name": "DUP3", + "source": 19 + }, + { + "begin": 6798, + "end": 6832, + "name": "GT", + "source": 19 + }, + { + "begin": 6795, + "end": 6857, + "name": "OR", + "source": 19 + }, + { + "begin": 6792, + "end": 6880, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 6792, + "end": 6880, + "name": "PUSH [tag]", + "source": 19, + "value": "542" + }, + { + "begin": 6792, + "end": 6880, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 6860, + "end": 6878, + "name": "PUSH [tag]", + "source": 19, + "value": "543" + }, + { + "begin": 6860, + "end": 6878, + "name": "PUSH [tag]", + "source": 19, + "value": "250" + }, + { + "begin": 6860, + "end": 6878, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6860, + "end": 6878, + "name": "tag", + "source": 19, + "value": "543" + }, + { + "begin": 6860, + "end": 6878, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6792, + "end": 6880, + "name": "tag", + "source": 19, + "value": "542" + }, + { + "begin": 6792, + "end": 6880, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6900, + "end": 6910, + "name": "DUP1", + "source": 19 + }, + { + "begin": 6896, + "end": 6898, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 6889, + "end": 6911, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 6679, + "end": 6917, + "name": "POP", + "source": 19 + }, + { + "begin": 6636, + "end": 6917, + "name": "POP", + "source": 19 + }, + { + "begin": 6636, + "end": 6917, + "name": "POP", + "source": 19 + }, + { + "begin": 6636, + "end": 6917, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6923, + "end": 7052, + "name": "tag", + "source": 19, + "value": "428" + }, + { + "begin": 6923, + "end": 7052, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6957, + "end": 6963, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 6984, + "end": 7004, + "name": "PUSH [tag]", + "source": 19, + "value": "545" + }, + { + "begin": 6984, + "end": 7004, + "name": "PUSH [tag]", + "source": 19, + "value": "403" + }, + { + "begin": 6984, + "end": 7004, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 6984, + "end": 7004, + "name": "tag", + "source": 19, + "value": "545" + }, + { + "begin": 6984, + "end": 7004, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6974, + "end": 7004, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 6974, + "end": 7004, + "name": "POP", + "source": 19 + }, + { + "begin": 7013, + "end": 7046, + "name": "PUSH [tag]", + "source": 19, + "value": "546" + }, + { + "begin": 7041, + "end": 7045, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7033, + "end": 7039, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7013, + "end": 7046, + "name": "PUSH [tag]", + "source": 19, + "value": "427" + }, + { + "begin": 7013, + "end": 7046, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7013, + "end": 7046, + "name": "tag", + "source": 19, + "value": "546" + }, + { + "begin": 7013, + "end": 7046, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 6923, + "end": 7052, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 6923, + "end": 7052, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 6923, + "end": 7052, + "name": "POP", + "source": 19 + }, + { + "begin": 6923, + "end": 7052, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7058, + "end": 7366, + "name": "tag", + "source": 19, + "value": "429" + }, + { + "begin": 7058, + "end": 7366, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7120, + "end": 7124, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 7210, + "end": 7228, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 7202, + "end": 7208, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7199, + "end": 7229, + "name": "GT", + "source": 19 + }, + { + "begin": 7196, + "end": 7252, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 7196, + "end": 7252, + "name": "PUSH [tag]", + "source": 19, + "value": "548" + }, + { + "begin": 7196, + "end": 7252, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 7232, + "end": 7250, + "name": "PUSH [tag]", + "source": 19, + "value": "549" + }, + { + "begin": 7232, + "end": 7250, + "name": "PUSH [tag]", + "source": 19, + "value": "250" + }, + { + "begin": 7232, + "end": 7250, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7232, + "end": 7250, + "name": "tag", + "source": 19, + "value": "549" + }, + { + "begin": 7232, + "end": 7250, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7196, + "end": 7252, + "name": "tag", + "source": 19, + "value": "548" + }, + { + "begin": 7196, + "end": 7252, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7270, + "end": 7299, + "name": "PUSH [tag]", + "source": 19, + "value": "550" + }, + { + "begin": 7292, + "end": 7298, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7270, + "end": 7299, + "name": "PUSH [tag]", + "source": 19, + "value": "414" + }, + { + "begin": 7270, + "end": 7299, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7270, + "end": 7299, + "name": "tag", + "source": 19, + "value": "550" + }, + { + "begin": 7270, + "end": 7299, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7262, + "end": 7299, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7262, + "end": 7299, + "name": "POP", + "source": 19 + }, + { + "begin": 7354, + "end": 7358, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 7348, + "end": 7352, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7344, + "end": 7359, + "name": "ADD", + "source": 19 + }, + { + "begin": 7336, + "end": 7359, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7336, + "end": 7359, + "name": "POP", + "source": 19 + }, + { + "begin": 7058, + "end": 7366, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 7058, + "end": 7366, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7058, + "end": 7366, + "name": "POP", + "source": 19 + }, + { + "begin": 7058, + "end": 7366, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7372, + "end": 7520, + "name": "tag", + "source": 19, + "value": "430" + }, + { + "begin": 7372, + "end": 7520, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7470, + "end": 7476, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7465, + "end": 7468, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7460, + "end": 7463, + "name": "DUP4", + "source": 19 + }, + { + "begin": 7447, + "end": 7477, + "name": "CALLDATACOPY", + "source": 19 + }, + { + "begin": 7511, + "end": 7512, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 7502, + "end": 7508, + "name": "DUP4", + "source": 19 + }, + { + "begin": 7497, + "end": 7500, + "name": "DUP4", + "source": 19 + }, + { + "begin": 7493, + "end": 7509, + "name": "ADD", + "source": 19 + }, + { + "begin": 7486, + "end": 7513, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 7372, + "end": 7520, + "name": "POP", + "source": 19 + }, + { + "begin": 7372, + "end": 7520, + "name": "POP", + "source": 19 + }, + { + "begin": 7372, + "end": 7520, + "name": "POP", + "source": 19 + }, + { + "begin": 7372, + "end": 7520, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7526, + "end": 7951, + "name": "tag", + "source": 19, + "value": "431" + }, + { + "begin": 7526, + "end": 7951, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7604, + "end": 7609, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 7629, + "end": 7695, + "name": "PUSH [tag]", + "source": 19, + "value": "553" + }, + { + "begin": 7645, + "end": 7694, + "name": "PUSH [tag]", + "source": 19, + "value": "554" + }, + { + "begin": 7687, + "end": 7693, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7645, + "end": 7694, + "name": "PUSH [tag]", + "source": 19, + "value": "429" + }, + { + "begin": 7645, + "end": 7694, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7645, + "end": 7694, + "name": "tag", + "source": 19, + "value": "554" + }, + { + "begin": 7645, + "end": 7694, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7629, + "end": 7695, + "name": "PUSH [tag]", + "source": 19, + "value": "428" + }, + { + "begin": 7629, + "end": 7695, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7629, + "end": 7695, + "name": "tag", + "source": 19, + "value": "553" + }, + { + "begin": 7629, + "end": 7695, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7620, + "end": 7695, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 7620, + "end": 7695, + "name": "POP", + "source": 19 + }, + { + "begin": 7718, + "end": 7724, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7711, + "end": 7716, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7704, + "end": 7725, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 7756, + "end": 7760, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 7749, + "end": 7754, + "name": "DUP2", + "source": 19 + }, + { + "begin": 7745, + "end": 7761, + "name": "ADD", + "source": 19 + }, + { + "begin": 7794, + "end": 7797, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7785, + "end": 7791, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7780, + "end": 7783, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7776, + "end": 7792, + "name": "ADD", + "source": 19 + }, + { + "begin": 7773, + "end": 7798, + "name": "GT", + "source": 19 + }, + { + "begin": 7770, + "end": 7882, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 7770, + "end": 7882, + "name": "PUSH [tag]", + "source": 19, + "value": "555" + }, + { + "begin": 7770, + "end": 7882, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 7801, + "end": 7880, + "name": "PUSH [tag]", + "source": 19, + "value": "556" + }, + { + "begin": 7801, + "end": 7880, + "name": "PUSH [tag]", + "source": 19, + "value": "426" + }, + { + "begin": 7801, + "end": 7880, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7801, + "end": 7880, + "name": "tag", + "source": 19, + "value": "556" + }, + { + "begin": 7801, + "end": 7880, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7770, + "end": 7882, + "name": "tag", + "source": 19, + "value": "555" + }, + { + "begin": 7770, + "end": 7882, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7891, + "end": 7945, + "name": "PUSH [tag]", + "source": 19, + "value": "557" + }, + { + "begin": 7938, + "end": 7944, + "name": "DUP5", + "source": 19 + }, + { + "begin": 7933, + "end": 7936, + "name": "DUP3", + "source": 19 + }, + { + "begin": 7928, + "end": 7931, + "name": "DUP6", + "source": 19 + }, + { + "begin": 7891, + "end": 7945, + "name": "PUSH [tag]", + "source": 19, + "value": "430" + }, + { + "begin": 7891, + "end": 7945, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7891, + "end": 7945, + "name": "tag", + "source": 19, + "value": "557" + }, + { + "begin": 7891, + "end": 7945, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 7610, + "end": 7951, + "name": "POP", + "source": 19 + }, + { + "begin": 7526, + "end": 7951, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 7526, + "end": 7951, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 7526, + "end": 7951, + "name": "POP", + "source": 19 + }, + { + "begin": 7526, + "end": 7951, + "name": "POP", + "source": 19 + }, + { + "begin": 7526, + "end": 7951, + "name": "POP", + "source": 19 + }, + { + "begin": 7526, + "end": 7951, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 7971, + "end": 8311, + "name": "tag", + "source": 19, + "value": "432" + }, + { + "begin": 7971, + "end": 8311, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8027, + "end": 8032, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8076, + "end": 8079, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8069, + "end": 8073, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 8061, + "end": 8067, + "name": "DUP4", + "source": 19 + }, + { + "begin": 8057, + "end": 8074, + "name": "ADD", + "source": 19 + }, + { + "begin": 8053, + "end": 8080, + "name": "SLT", + "source": 19 + }, + { + "begin": 8043, + "end": 8165, + "name": "PUSH [tag]", + "source": 19, + "value": "559" + }, + { + "begin": 8043, + "end": 8165, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 8084, + "end": 8163, + "name": "PUSH [tag]", + "source": 19, + "value": "560" + }, + { + "begin": 8084, + "end": 8163, + "name": "PUSH [tag]", + "source": 19, + "value": "425" + }, + { + "begin": 8084, + "end": 8163, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8084, + "end": 8163, + "name": "tag", + "source": 19, + "value": "560" + }, + { + "begin": 8084, + "end": 8163, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8043, + "end": 8165, + "name": "tag", + "source": 19, + "value": "559" + }, + { + "begin": 8043, + "end": 8165, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8201, + "end": 8207, + "name": "DUP2", + "source": 19 + }, + { + "begin": 8188, + "end": 8208, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 8226, + "end": 8305, + "name": "PUSH [tag]", + "source": 19, + "value": "561" + }, + { + "begin": 8301, + "end": 8304, + "name": "DUP5", + "source": 19 + }, + { + "begin": 8293, + "end": 8299, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8286, + "end": 8290, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 8278, + "end": 8284, + "name": "DUP7", + "source": 19 + }, + { + "begin": 8274, + "end": 8291, + "name": "ADD", + "source": 19 + }, + { + "begin": 8226, + "end": 8305, + "name": "PUSH [tag]", + "source": 19, + "value": "431" + }, + { + "begin": 8226, + "end": 8305, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8226, + "end": 8305, + "name": "tag", + "source": 19, + "value": "561" + }, + { + "begin": 8226, + "end": 8305, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8217, + "end": 8305, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 8217, + "end": 8305, + "name": "POP", + "source": 19 + }, + { + "begin": 8033, + "end": 8311, + "name": "POP", + "source": 19 + }, + { + "begin": 7971, + "end": 8311, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 7971, + "end": 8311, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 7971, + "end": 8311, + "name": "POP", + "source": 19 + }, + { + "begin": 7971, + "end": 8311, + "name": "POP", + "source": 19 + }, + { + "begin": 7971, + "end": 8311, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8317, + "end": 8826, + "name": "tag", + "source": 19, + "value": "73" + }, + { + "begin": 8317, + "end": 8826, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8386, + "end": 8392, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8435, + "end": 8437, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 8423, + "end": 8432, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8414, + "end": 8421, + "name": "DUP5", + "source": 19 + }, + { + "begin": 8410, + "end": 8433, + "name": "SUB", + "source": 19 + }, + { + "begin": 8406, + "end": 8438, + "name": "SLT", + "source": 19 + }, + { + "begin": 8403, + "end": 8522, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 8403, + "end": 8522, + "name": "PUSH [tag]", + "source": 19, + "value": "563" + }, + { + "begin": 8403, + "end": 8522, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 8441, + "end": 8520, + "name": "PUSH [tag]", + "source": 19, + "value": "564" + }, + { + "begin": 8441, + "end": 8520, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 8441, + "end": 8520, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8441, + "end": 8520, + "name": "tag", + "source": 19, + "value": "564" + }, + { + "begin": 8441, + "end": 8520, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8403, + "end": 8522, + "name": "tag", + "source": 19, + "value": "563" + }, + { + "begin": 8403, + "end": 8522, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8589, + "end": 8590, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8578, + "end": 8587, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8574, + "end": 8591, + "name": "ADD", + "source": 19 + }, + { + "begin": 8561, + "end": 8592, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 8619, + "end": 8637, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 8611, + "end": 8617, + "name": "DUP2", + "source": 19 + }, + { + "begin": 8608, + "end": 8638, + "name": "GT", + "source": 19 + }, + { + "begin": 8605, + "end": 8722, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 8605, + "end": 8722, + "name": "PUSH [tag]", + "source": 19, + "value": "565" + }, + { + "begin": 8605, + "end": 8722, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 8641, + "end": 8720, + "name": "PUSH [tag]", + "source": 19, + "value": "566" + }, + { + "begin": 8641, + "end": 8720, + "name": "PUSH [tag]", + "source": 19, + "value": "405" + }, + { + "begin": 8641, + "end": 8720, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8641, + "end": 8720, + "name": "tag", + "source": 19, + "value": "566" + }, + { + "begin": 8641, + "end": 8720, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8605, + "end": 8722, + "name": "tag", + "source": 19, + "value": "565" + }, + { + "begin": 8605, + "end": 8722, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8746, + "end": 8809, + "name": "PUSH [tag]", + "source": 19, + "value": "567" + }, + { + "begin": 8801, + "end": 8808, + "name": "DUP5", + "source": 19 + }, + { + "begin": 8792, + "end": 8798, + "name": "DUP3", + "source": 19 + }, + { + "begin": 8781, + "end": 8790, + "name": "DUP6", + "source": 19 + }, + { + "begin": 8777, + "end": 8799, + "name": "ADD", + "source": 19 + }, + { + "begin": 8746, + "end": 8809, + "name": "PUSH [tag]", + "source": 19, + "value": "432" + }, + { + "begin": 8746, + "end": 8809, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8746, + "end": 8809, + "name": "tag", + "source": 19, + "value": "567" + }, + { + "begin": 8746, + "end": 8809, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8736, + "end": 8809, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 8736, + "end": 8809, + "name": "POP", + "source": 19 + }, + { + "begin": 8532, + "end": 8819, + "name": "POP", + "source": 19 + }, + { + "begin": 8317, + "end": 8826, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 8317, + "end": 8826, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 8317, + "end": 8826, + "name": "POP", + "source": 19 + }, + { + "begin": 8317, + "end": 8826, + "name": "POP", + "source": 19 + }, + { + "begin": 8317, + "end": 8826, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8832, + "end": 8948, + "name": "tag", + "source": 19, + "value": "433" + }, + { + "begin": 8832, + "end": 8948, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8902, + "end": 8923, + "name": "PUSH [tag]", + "source": 19, + "value": "569" + }, + { + "begin": 8917, + "end": 8922, + "name": "DUP2", + "source": 19 + }, + { + "begin": 8902, + "end": 8923, + "name": "PUSH [tag]", + "source": 19, + "value": "409" + }, + { + "begin": 8902, + "end": 8923, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8902, + "end": 8923, + "name": "tag", + "source": 19, + "value": "569" + }, + { + "begin": 8902, + "end": 8923, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8895, + "end": 8900, + "name": "DUP2", + "source": 19 + }, + { + "begin": 8892, + "end": 8924, + "name": "EQ", + "source": 19 + }, + { + "begin": 8882, + "end": 8942, + "name": "PUSH [tag]", + "source": 19, + "value": "570" + }, + { + "begin": 8882, + "end": 8942, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 8938, + "end": 8939, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 8935, + "end": 8936, + "name": "DUP1", + "source": 19 + }, + { + "begin": 8928, + "end": 8940, + "name": "REVERT", + "source": 19 + }, + { + "begin": 8882, + "end": 8942, + "name": "tag", + "source": 19, + "value": "570" + }, + { + "begin": 8882, + "end": 8942, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8832, + "end": 8948, + "name": "POP", + "source": 19 + }, + { + "begin": 8832, + "end": 8948, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 8954, + "end": 9087, + "name": "tag", + "source": 19, + "value": "434" + }, + { + "begin": 8954, + "end": 9087, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8997, + "end": 9002, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 9035, + "end": 9041, + "name": "DUP2", + "source": 19 + }, + { + "begin": 9022, + "end": 9042, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 9013, + "end": 9042, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 9013, + "end": 9042, + "name": "POP", + "source": 19 + }, + { + "begin": 9051, + "end": 9081, + "name": "PUSH [tag]", + "source": 19, + "value": "572" + }, + { + "begin": 9075, + "end": 9080, + "name": "DUP2", + "source": 19 + }, + { + "begin": 9051, + "end": 9081, + "name": "PUSH [tag]", + "source": 19, + "value": "433" + }, + { + "begin": 9051, + "end": 9081, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9051, + "end": 9081, + "name": "tag", + "source": 19, + "value": "572" + }, + { + "begin": 9051, + "end": 9081, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 8954, + "end": 9087, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 8954, + "end": 9087, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 8954, + "end": 9087, + "name": "POP", + "source": 19 + }, + { + "begin": 8954, + "end": 9087, + "name": "POP", + "source": 19 + }, + { + "begin": 8954, + "end": 9087, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9093, + "end": 9561, + "name": "tag", + "source": 19, + "value": "96" + }, + { + "begin": 9093, + "end": 9561, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9158, + "end": 9164, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 9166, + "end": 9172, + "name": "DUP1", + "source": 19 + }, + { + "begin": 9215, + "end": 9217, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 9203, + "end": 9212, + "name": "DUP4", + "source": 19 + }, + { + "begin": 9194, + "end": 9201, + "name": "DUP6", + "source": 19 + }, + { + "begin": 9190, + "end": 9213, + "name": "SUB", + "source": 19 + }, + { + "begin": 9186, + "end": 9218, + "name": "SLT", + "source": 19 + }, + { + "begin": 9183, + "end": 9302, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 9183, + "end": 9302, + "name": "PUSH [tag]", + "source": 19, + "value": "574" + }, + { + "begin": 9183, + "end": 9302, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 9221, + "end": 9300, + "name": "PUSH [tag]", + "source": 19, + "value": "575" + }, + { + "begin": 9221, + "end": 9300, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 9221, + "end": 9300, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9221, + "end": 9300, + "name": "tag", + "source": 19, + "value": "575" + }, + { + "begin": 9221, + "end": 9300, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9183, + "end": 9302, + "name": "tag", + "source": 19, + "value": "574" + }, + { + "begin": 9183, + "end": 9302, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9341, + "end": 9342, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 9366, + "end": 9419, + "name": "PUSH [tag]", + "source": 19, + "value": "576" + }, + { + "begin": 9411, + "end": 9418, + "name": "DUP6", + "source": 19 + }, + { + "begin": 9402, + "end": 9408, + "name": "DUP3", + "source": 19 + }, + { + "begin": 9391, + "end": 9400, + "name": "DUP7", + "source": 19 + }, + { + "begin": 9387, + "end": 9409, + "name": "ADD", + "source": 19 + }, + { + "begin": 9366, + "end": 9419, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 9366, + "end": 9419, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9366, + "end": 9419, + "name": "tag", + "source": 19, + "value": "576" + }, + { + "begin": 9366, + "end": 9419, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9356, + "end": 9419, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 9356, + "end": 9419, + "name": "POP", + "source": 19 + }, + { + "begin": 9312, + "end": 9429, + "name": "POP", + "source": 19 + }, + { + "begin": 9468, + "end": 9470, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 9494, + "end": 9544, + "name": "PUSH [tag]", + "source": 19, + "value": "577" + }, + { + "begin": 9536, + "end": 9543, + "name": "DUP6", + "source": 19 + }, + { + "begin": 9527, + "end": 9533, + "name": "DUP3", + "source": 19 + }, + { + "begin": 9516, + "end": 9525, + "name": "DUP7", + "source": 19 + }, + { + "begin": 9512, + "end": 9534, + "name": "ADD", + "source": 19 + }, + { + "begin": 9494, + "end": 9544, + "name": "PUSH [tag]", + "source": 19, + "value": "434" + }, + { + "begin": 9494, + "end": 9544, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9494, + "end": 9544, + "name": "tag", + "source": 19, + "value": "577" + }, + { + "begin": 9494, + "end": 9544, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9484, + "end": 9544, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 9484, + "end": 9544, + "name": "POP", + "source": 19 + }, + { + "begin": 9439, + "end": 9554, + "name": "POP", + "source": 19 + }, + { + "begin": 9093, + "end": 9561, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 9093, + "end": 9561, + "name": "POP", + "source": 19 + }, + { + "begin": 9093, + "end": 9561, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 9093, + "end": 9561, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 9093, + "end": 9561, + "name": "POP", + "source": 19 + }, + { + "begin": 9093, + "end": 9561, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9567, + "end": 9874, + "name": "tag", + "source": 19, + "value": "435" + }, + { + "begin": 9567, + "end": 9874, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9628, + "end": 9632, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 9718, + "end": 9736, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 9710, + "end": 9716, + "name": "DUP3", + "source": 19 + }, + { + "begin": 9707, + "end": 9737, + "name": "GT", + "source": 19 + }, + { + "begin": 9704, + "end": 9760, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 9704, + "end": 9760, + "name": "PUSH [tag]", + "source": 19, + "value": "579" + }, + { + "begin": 9704, + "end": 9760, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 9740, + "end": 9758, + "name": "PUSH [tag]", + "source": 19, + "value": "580" + }, + { + "begin": 9740, + "end": 9758, + "name": "PUSH [tag]", + "source": 19, + "value": "250" + }, + { + "begin": 9740, + "end": 9758, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9740, + "end": 9758, + "name": "tag", + "source": 19, + "value": "580" + }, + { + "begin": 9740, + "end": 9758, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9704, + "end": 9760, + "name": "tag", + "source": 19, + "value": "579" + }, + { + "begin": 9704, + "end": 9760, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9778, + "end": 9807, + "name": "PUSH [tag]", + "source": 19, + "value": "581" + }, + { + "begin": 9800, + "end": 9806, + "name": "DUP3", + "source": 19 + }, + { + "begin": 9778, + "end": 9807, + "name": "PUSH [tag]", + "source": 19, + "value": "414" + }, + { + "begin": 9778, + "end": 9807, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9778, + "end": 9807, + "name": "tag", + "source": 19, + "value": "581" + }, + { + "begin": 9778, + "end": 9807, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9770, + "end": 9807, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 9770, + "end": 9807, + "name": "POP", + "source": 19 + }, + { + "begin": 9862, + "end": 9866, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 9856, + "end": 9860, + "name": "DUP2", + "source": 19 + }, + { + "begin": 9852, + "end": 9867, + "name": "ADD", + "source": 19 + }, + { + "begin": 9844, + "end": 9867, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 9844, + "end": 9867, + "name": "POP", + "source": 19 + }, + { + "begin": 9567, + "end": 9874, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 9567, + "end": 9874, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 9567, + "end": 9874, + "name": "POP", + "source": 19 + }, + { + "begin": 9567, + "end": 9874, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9880, + "end": 10303, + "name": "tag", + "source": 19, + "value": "436" + }, + { + "begin": 9880, + "end": 10303, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9957, + "end": 9962, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 9982, + "end": 10047, + "name": "PUSH [tag]", + "source": 19, + "value": "583" + }, + { + "begin": 9998, + "end": 10046, + "name": "PUSH [tag]", + "source": 19, + "value": "584" + }, + { + "begin": 10039, + "end": 10045, + "name": "DUP5", + "source": 19 + }, + { + "begin": 9998, + "end": 10046, + "name": "PUSH [tag]", + "source": 19, + "value": "435" + }, + { + "begin": 9998, + "end": 10046, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9998, + "end": 10046, + "name": "tag", + "source": 19, + "value": "584" + }, + { + "begin": 9998, + "end": 10046, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9982, + "end": 10047, + "name": "PUSH [tag]", + "source": 19, + "value": "428" + }, + { + "begin": 9982, + "end": 10047, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 9982, + "end": 10047, + "name": "tag", + "source": 19, + "value": "583" + }, + { + "begin": 9982, + "end": 10047, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9973, + "end": 10047, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 9973, + "end": 10047, + "name": "POP", + "source": 19 + }, + { + "begin": 10070, + "end": 10076, + "name": "DUP3", + "source": 19 + }, + { + "begin": 10063, + "end": 10068, + "name": "DUP2", + "source": 19 + }, + { + "begin": 10056, + "end": 10077, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 10108, + "end": 10112, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 10101, + "end": 10106, + "name": "DUP2", + "source": 19 + }, + { + "begin": 10097, + "end": 10113, + "name": "ADD", + "source": 19 + }, + { + "begin": 10146, + "end": 10149, + "name": "DUP5", + "source": 19 + }, + { + "begin": 10137, + "end": 10143, + "name": "DUP5", + "source": 19 + }, + { + "begin": 10132, + "end": 10135, + "name": "DUP5", + "source": 19 + }, + { + "begin": 10128, + "end": 10144, + "name": "ADD", + "source": 19 + }, + { + "begin": 10125, + "end": 10150, + "name": "GT", + "source": 19 + }, + { + "begin": 10122, + "end": 10234, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 10122, + "end": 10234, + "name": "PUSH [tag]", + "source": 19, + "value": "585" + }, + { + "begin": 10122, + "end": 10234, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 10153, + "end": 10232, + "name": "PUSH [tag]", + "source": 19, + "value": "586" + }, + { + "begin": 10153, + "end": 10232, + "name": "PUSH [tag]", + "source": 19, + "value": "426" + }, + { + "begin": 10153, + "end": 10232, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10153, + "end": 10232, + "name": "tag", + "source": 19, + "value": "586" + }, + { + "begin": 10153, + "end": 10232, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10122, + "end": 10234, + "name": "tag", + "source": 19, + "value": "585" + }, + { + "begin": 10122, + "end": 10234, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10243, + "end": 10297, + "name": "PUSH [tag]", + "source": 19, + "value": "587" + }, + { + "begin": 10290, + "end": 10296, + "name": "DUP5", + "source": 19 + }, + { + "begin": 10285, + "end": 10288, + "name": "DUP3", + "source": 19 + }, + { + "begin": 10280, + "end": 10283, + "name": "DUP6", + "source": 19 + }, + { + "begin": 10243, + "end": 10297, + "name": "PUSH [tag]", + "source": 19, + "value": "430" + }, + { + "begin": 10243, + "end": 10297, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10243, + "end": 10297, + "name": "tag", + "source": 19, + "value": "587" + }, + { + "begin": 10243, + "end": 10297, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 9963, + "end": 10303, + "name": "POP", + "source": 19 + }, + { + "begin": 9880, + "end": 10303, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 9880, + "end": 10303, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 9880, + "end": 10303, + "name": "POP", + "source": 19 + }, + { + "begin": 9880, + "end": 10303, + "name": "POP", + "source": 19 + }, + { + "begin": 9880, + "end": 10303, + "name": "POP", + "source": 19 + }, + { + "begin": 9880, + "end": 10303, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10322, + "end": 10660, + "name": "tag", + "source": 19, + "value": "437" + }, + { + "begin": 10322, + "end": 10660, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10377, + "end": 10382, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 10426, + "end": 10429, + "name": "DUP3", + "source": 19 + }, + { + "begin": 10419, + "end": 10423, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 10411, + "end": 10417, + "name": "DUP4", + "source": 19 + }, + { + "begin": 10407, + "end": 10424, + "name": "ADD", + "source": 19 + }, + { + "begin": 10403, + "end": 10430, + "name": "SLT", + "source": 19 + }, + { + "begin": 10393, + "end": 10515, + "name": "PUSH [tag]", + "source": 19, + "value": "589" + }, + { + "begin": 10393, + "end": 10515, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 10434, + "end": 10513, + "name": "PUSH [tag]", + "source": 19, + "value": "590" + }, + { + "begin": 10434, + "end": 10513, + "name": "PUSH [tag]", + "source": 19, + "value": "425" + }, + { + "begin": 10434, + "end": 10513, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10434, + "end": 10513, + "name": "tag", + "source": 19, + "value": "590" + }, + { + "begin": 10434, + "end": 10513, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10393, + "end": 10515, + "name": "tag", + "source": 19, + "value": "589" + }, + { + "begin": 10393, + "end": 10515, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10551, + "end": 10557, + "name": "DUP2", + "source": 19 + }, + { + "begin": 10538, + "end": 10558, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 10576, + "end": 10654, + "name": "PUSH [tag]", + "source": 19, + "value": "591" + }, + { + "begin": 10650, + "end": 10653, + "name": "DUP5", + "source": 19 + }, + { + "begin": 10642, + "end": 10648, + "name": "DUP3", + "source": 19 + }, + { + "begin": 10635, + "end": 10639, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 10627, + "end": 10633, + "name": "DUP7", + "source": 19 + }, + { + "begin": 10623, + "end": 10640, + "name": "ADD", + "source": 19 + }, + { + "begin": 10576, + "end": 10654, + "name": "PUSH [tag]", + "source": 19, + "value": "436" + }, + { + "begin": 10576, + "end": 10654, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10576, + "end": 10654, + "name": "tag", + "source": 19, + "value": "591" + }, + { + "begin": 10576, + "end": 10654, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10567, + "end": 10654, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 10567, + "end": 10654, + "name": "POP", + "source": 19 + }, + { + "begin": 10383, + "end": 10660, + "name": "POP", + "source": 19 + }, + { + "begin": 10322, + "end": 10660, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 10322, + "end": 10660, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 10322, + "end": 10660, + "name": "POP", + "source": 19 + }, + { + "begin": 10322, + "end": 10660, + "name": "POP", + "source": 19 + }, + { + "begin": 10322, + "end": 10660, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "tag", + "source": 19, + "value": "100" + }, + { + "begin": 10666, + "end": 11609, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10761, + "end": 10767, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 10769, + "end": 10775, + "name": "DUP1", + "source": 19 + }, + { + "begin": 10777, + "end": 10783, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 10785, + "end": 10791, + "name": "DUP1", + "source": 19 + }, + { + "begin": 10834, + "end": 10837, + "name": "PUSH", + "source": 19, + "value": "80" + }, + { + "begin": 10822, + "end": 10831, + "name": "DUP6", + "source": 19 + }, + { + "begin": 10813, + "end": 10820, + "name": "DUP8", + "source": 19 + }, + { + "begin": 10809, + "end": 10832, + "name": "SUB", + "source": 19 + }, + { + "begin": 10805, + "end": 10838, + "name": "SLT", + "source": 19 + }, + { + "begin": 10802, + "end": 10922, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 10802, + "end": 10922, + "name": "PUSH [tag]", + "source": 19, + "value": "593" + }, + { + "begin": 10802, + "end": 10922, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 10841, + "end": 10920, + "name": "PUSH [tag]", + "source": 19, + "value": "594" + }, + { + "begin": 10841, + "end": 10920, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 10841, + "end": 10920, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10841, + "end": 10920, + "name": "tag", + "source": 19, + "value": "594" + }, + { + "begin": 10841, + "end": 10920, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10802, + "end": 10922, + "name": "tag", + "source": 19, + "value": "593" + }, + { + "begin": 10802, + "end": 10922, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10961, + "end": 10962, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 10986, + "end": 11039, + "name": "PUSH [tag]", + "source": 19, + "value": "595" + }, + { + "begin": 11031, + "end": 11038, + "name": "DUP8", + "source": 19 + }, + { + "begin": 11022, + "end": 11028, + "name": "DUP3", + "source": 19 + }, + { + "begin": 11011, + "end": 11020, + "name": "DUP9", + "source": 19 + }, + { + "begin": 11007, + "end": 11029, + "name": "ADD", + "source": 19 + }, + { + "begin": 10986, + "end": 11039, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 10986, + "end": 11039, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 10986, + "end": 11039, + "name": "tag", + "source": 19, + "value": "595" + }, + { + "begin": 10986, + "end": 11039, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 10976, + "end": 11039, + "name": "SWAP5", + "source": 19 + }, + { + "begin": 10976, + "end": 11039, + "name": "POP", + "source": 19 + }, + { + "begin": 10932, + "end": 11049, + "name": "POP", + "source": 19 + }, + { + "begin": 11088, + "end": 11090, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 11114, + "end": 11167, + "name": "PUSH [tag]", + "source": 19, + "value": "596" + }, + { + "begin": 11159, + "end": 11166, + "name": "DUP8", + "source": 19 + }, + { + "begin": 11150, + "end": 11156, + "name": "DUP3", + "source": 19 + }, + { + "begin": 11139, + "end": 11148, + "name": "DUP9", + "source": 19 + }, + { + "begin": 11135, + "end": 11157, + "name": "ADD", + "source": 19 + }, + { + "begin": 11114, + "end": 11167, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 11114, + "end": 11167, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 11114, + "end": 11167, + "name": "tag", + "source": 19, + "value": "596" + }, + { + "begin": 11114, + "end": 11167, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11104, + "end": 11167, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 11104, + "end": 11167, + "name": "POP", + "source": 19 + }, + { + "begin": 11059, + "end": 11177, + "name": "POP", + "source": 19 + }, + { + "begin": 11216, + "end": 11218, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 11242, + "end": 11295, + "name": "PUSH [tag]", + "source": 19, + "value": "597" + }, + { + "begin": 11287, + "end": 11294, + "name": "DUP8", + "source": 19 + }, + { + "begin": 11278, + "end": 11284, + "name": "DUP3", + "source": 19 + }, + { + "begin": 11267, + "end": 11276, + "name": "DUP9", + "source": 19 + }, + { + "begin": 11263, + "end": 11285, + "name": "ADD", + "source": 19 + }, + { + "begin": 11242, + "end": 11295, + "name": "PUSH [tag]", + "source": 19, + "value": "418" + }, + { + "begin": 11242, + "end": 11295, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 11242, + "end": 11295, + "name": "tag", + "source": 19, + "value": "597" + }, + { + "begin": 11242, + "end": 11295, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11232, + "end": 11295, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 11232, + "end": 11295, + "name": "POP", + "source": 19 + }, + { + "begin": 11187, + "end": 11305, + "name": "POP", + "source": 19 + }, + { + "begin": 11372, + "end": 11374, + "name": "PUSH", + "source": 19, + "value": "60" + }, + { + "begin": 11361, + "end": 11370, + "name": "DUP6", + "source": 19 + }, + { + "begin": 11357, + "end": 11375, + "name": "ADD", + "source": 19 + }, + { + "begin": 11344, + "end": 11376, + "name": "CALLDATALOAD", + "source": 19 + }, + { + "begin": 11403, + "end": 11421, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 11395, + "end": 11401, + "name": "DUP2", + "source": 19 + }, + { + "begin": 11392, + "end": 11422, + "name": "GT", + "source": 19 + }, + { + "begin": 11389, + "end": 11506, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 11389, + "end": 11506, + "name": "PUSH [tag]", + "source": 19, + "value": "598" + }, + { + "begin": 11389, + "end": 11506, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 11425, + "end": 11504, + "name": "PUSH [tag]", + "source": 19, + "value": "599" + }, + { + "begin": 11425, + "end": 11504, + "name": "PUSH [tag]", + "source": 19, + "value": "405" + }, + { + "begin": 11425, + "end": 11504, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 11425, + "end": 11504, + "name": "tag", + "source": 19, + "value": "599" + }, + { + "begin": 11425, + "end": 11504, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11389, + "end": 11506, + "name": "tag", + "source": 19, + "value": "598" + }, + { + "begin": 11389, + "end": 11506, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11530, + "end": 11592, + "name": "PUSH [tag]", + "source": 19, + "value": "600" + }, + { + "begin": 11584, + "end": 11591, + "name": "DUP8", + "source": 19 + }, + { + "begin": 11575, + "end": 11581, + "name": "DUP3", + "source": 19 + }, + { + "begin": 11564, + "end": 11573, + "name": "DUP9", + "source": 19 + }, + { + "begin": 11560, + "end": 11582, + "name": "ADD", + "source": 19 + }, + { + "begin": 11530, + "end": 11592, + "name": "PUSH [tag]", + "source": 19, + "value": "437" + }, + { + "begin": 11530, + "end": 11592, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 11530, + "end": 11592, + "name": "tag", + "source": 19, + "value": "600" + }, + { + "begin": 11530, + "end": 11592, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11520, + "end": 11592, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 11520, + "end": 11592, + "name": "POP", + "source": 19 + }, + { + "begin": 11315, + "end": 11602, + "name": "POP", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "SWAP6", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "SWAP5", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "POP", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "name": "POP", + "source": 19 + }, + { + "begin": 10666, + "end": 11609, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 11615, + "end": 12089, + "name": "tag", + "source": 19, + "value": "108" + }, + { + "begin": 11615, + "end": 12089, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11683, + "end": 11689, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 11691, + "end": 11697, + "name": "DUP1", + "source": 19 + }, + { + "begin": 11740, + "end": 11742, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 11728, + "end": 11737, + "name": "DUP4", + "source": 19 + }, + { + "begin": 11719, + "end": 11726, + "name": "DUP6", + "source": 19 + }, + { + "begin": 11715, + "end": 11738, + "name": "SUB", + "source": 19 + }, + { + "begin": 11711, + "end": 11743, + "name": "SLT", + "source": 19 + }, + { + "begin": 11708, + "end": 11827, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 11708, + "end": 11827, + "name": "PUSH [tag]", + "source": 19, + "value": "602" + }, + { + "begin": 11708, + "end": 11827, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 11746, + "end": 11825, + "name": "PUSH [tag]", + "source": 19, + "value": "603" + }, + { + "begin": 11746, + "end": 11825, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 11746, + "end": 11825, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 11746, + "end": 11825, + "name": "tag", + "source": 19, + "value": "603" + }, + { + "begin": 11746, + "end": 11825, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11708, + "end": 11827, + "name": "tag", + "source": 19, + "value": "602" + }, + { + "begin": 11708, + "end": 11827, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11866, + "end": 11867, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 11891, + "end": 11944, + "name": "PUSH [tag]", + "source": 19, + "value": "604" + }, + { + "begin": 11936, + "end": 11943, + "name": "DUP6", + "source": 19 + }, + { + "begin": 11927, + "end": 11933, + "name": "DUP3", + "source": 19 + }, + { + "begin": 11916, + "end": 11925, + "name": "DUP7", + "source": 19 + }, + { + "begin": 11912, + "end": 11934, + "name": "ADD", + "source": 19 + }, + { + "begin": 11891, + "end": 11944, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 11891, + "end": 11944, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 11891, + "end": 11944, + "name": "tag", + "source": 19, + "value": "604" + }, + { + "begin": 11891, + "end": 11944, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 11881, + "end": 11944, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 11881, + "end": 11944, + "name": "POP", + "source": 19 + }, + { + "begin": 11837, + "end": 11954, + "name": "POP", + "source": 19 + }, + { + "begin": 11993, + "end": 11995, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 12019, + "end": 12072, + "name": "PUSH [tag]", + "source": 19, + "value": "605" + }, + { + "begin": 12064, + "end": 12071, + "name": "DUP6", + "source": 19 + }, + { + "begin": 12055, + "end": 12061, + "name": "DUP3", + "source": 19 + }, + { + "begin": 12044, + "end": 12053, + "name": "DUP7", + "source": 19 + }, + { + "begin": 12040, + "end": 12062, + "name": "ADD", + "source": 19 + }, + { + "begin": 12019, + "end": 12072, + "name": "PUSH [tag]", + "source": 19, + "value": "423" + }, + { + "begin": 12019, + "end": 12072, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 12019, + "end": 12072, + "name": "tag", + "source": 19, + "value": "605" + }, + { + "begin": 12019, + "end": 12072, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12009, + "end": 12072, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 12009, + "end": 12072, + "name": "POP", + "source": 19 + }, + { + "begin": 11964, + "end": 12082, + "name": "POP", + "source": 19 + }, + { + "begin": 11615, + "end": 12089, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 11615, + "end": 12089, + "name": "POP", + "source": 19 + }, + { + "begin": 11615, + "end": 12089, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 11615, + "end": 12089, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 11615, + "end": 12089, + "name": "POP", + "source": 19 + }, + { + "begin": 11615, + "end": 12089, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 12095, + "end": 12275, + "name": "tag", + "source": 19, + "value": "438" + }, + { + "begin": 12095, + "end": 12275, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12143, + "end": 12220, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 12140, + "end": 12141, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 12133, + "end": 12221, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 12240, + "end": 12244, + "name": "PUSH", + "source": 19, + "value": "22" + }, + { + "begin": 12237, + "end": 12238, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 12230, + "end": 12245, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 12264, + "end": 12268, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 12261, + "end": 12262, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 12254, + "end": 12269, + "name": "REVERT", + "source": 19 + }, + { + "begin": 12281, + "end": 12601, + "name": "tag", + "source": 19, + "value": "119" + }, + { + "begin": 12281, + "end": 12601, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12325, + "end": 12331, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 12362, + "end": 12363, + "name": "PUSH", + "source": 19, + "value": "2" + }, + { + "begin": 12356, + "end": 12360, + "name": "DUP3", + "source": 19 + }, + { + "begin": 12352, + "end": 12364, + "name": "DIV", + "source": 19 + }, + { + "begin": 12342, + "end": 12364, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 12342, + "end": 12364, + "name": "POP", + "source": 19 + }, + { + "begin": 12409, + "end": 12410, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 12403, + "end": 12407, + "name": "DUP3", + "source": 19 + }, + { + "begin": 12399, + "end": 12411, + "name": "AND", + "source": 19 + }, + { + "begin": 12430, + "end": 12448, + "name": "DUP1", + "source": 19 + }, + { + "begin": 12420, + "end": 12501, + "name": "PUSH [tag]", + "source": 19, + "value": "608" + }, + { + "begin": 12420, + "end": 12501, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 12486, + "end": 12490, + "name": "PUSH", + "source": 19, + "value": "7F" + }, + { + "begin": 12478, + "end": 12484, + "name": "DUP3", + "source": 19 + }, + { + "begin": 12474, + "end": 12491, + "name": "AND", + "source": 19 + }, + { + "begin": 12464, + "end": 12491, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 12464, + "end": 12491, + "name": "POP", + "source": 19 + }, + { + "begin": 12420, + "end": 12501, + "name": "tag", + "source": 19, + "value": "608" + }, + { + "begin": 12420, + "end": 12501, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12548, + "end": 12550, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 12540, + "end": 12546, + "name": "DUP3", + "source": 19 + }, + { + "begin": 12537, + "end": 12551, + "name": "LT", + "source": 19 + }, + { + "begin": 12517, + "end": 12535, + "name": "DUP2", + "source": 19 + }, + { + "begin": 12514, + "end": 12552, + "name": "SUB", + "source": 19 + }, + { + "begin": 12511, + "end": 12595, + "name": "PUSH [tag]", + "source": 19, + "value": "609" + }, + { + "begin": 12511, + "end": 12595, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 12567, + "end": 12585, + "name": "PUSH [tag]", + "source": 19, + "value": "610" + }, + { + "begin": 12567, + "end": 12585, + "name": "PUSH [tag]", + "source": 19, + "value": "438" + }, + { + "begin": 12567, + "end": 12585, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 12567, + "end": 12585, + "name": "tag", + "source": 19, + "value": "610" + }, + { + "begin": 12567, + "end": 12585, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12511, + "end": 12595, + "name": "tag", + "source": 19, + "value": "609" + }, + { + "begin": 12511, + "end": 12595, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12332, + "end": 12601, + "name": "POP", + "source": 19 + }, + { + "begin": 12281, + "end": 12601, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 12281, + "end": 12601, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 12281, + "end": 12601, + "name": "POP", + "source": 19 + }, + { + "begin": 12281, + "end": 12601, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "name": "tag", + "source": 19, + "value": "143" + }, + { + "begin": 12607, + "end": 13049, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12756, + "end": 12760, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 12794, + "end": 12796, + "name": "PUSH", + "source": 19, + "value": "60" + }, + { + "begin": 12783, + "end": 12792, + "name": "DUP3", + "source": 19 + }, + { + "begin": 12779, + "end": 12797, + "name": "ADD", + "source": 19 + }, + { + "begin": 12771, + "end": 12797, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 12771, + "end": 12797, + "name": "POP", + "source": 19 + }, + { + "begin": 12807, + "end": 12878, + "name": "PUSH [tag]", + "source": 19, + "value": "612" + }, + { + "begin": 12875, + "end": 12876, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 12864, + "end": 12873, + "name": "DUP4", + "source": 19 + }, + { + "begin": 12860, + "end": 12877, + "name": "ADD", + "source": 19 + }, + { + "begin": 12851, + "end": 12857, + "name": "DUP7", + "source": 19 + }, + { + "begin": 12807, + "end": 12878, + "name": "PUSH [tag]", + "source": 19, + "value": "421" + }, + { + "begin": 12807, + "end": 12878, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 12807, + "end": 12878, + "name": "tag", + "source": 19, + "value": "612" + }, + { + "begin": 12807, + "end": 12878, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12888, + "end": 12960, + "name": "PUSH [tag]", + "source": 19, + "value": "613" + }, + { + "begin": 12956, + "end": 12958, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 12945, + "end": 12954, + "name": "DUP4", + "source": 19 + }, + { + "begin": 12941, + "end": 12959, + "name": "ADD", + "source": 19 + }, + { + "begin": 12932, + "end": 12938, + "name": "DUP6", + "source": 19 + }, + { + "begin": 12888, + "end": 12960, + "name": "PUSH [tag]", + "source": 19, + "value": "424" + }, + { + "begin": 12888, + "end": 12960, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 12888, + "end": 12960, + "name": "tag", + "source": 19, + "value": "613" + }, + { + "begin": 12888, + "end": 12960, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12970, + "end": 13042, + "name": "PUSH [tag]", + "source": 19, + "value": "614" + }, + { + "begin": 13038, + "end": 13040, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 13027, + "end": 13036, + "name": "DUP4", + "source": 19 + }, + { + "begin": 13023, + "end": 13041, + "name": "ADD", + "source": 19 + }, + { + "begin": 13014, + "end": 13020, + "name": "DUP5", + "source": 19 + }, + { + "begin": 12970, + "end": 13042, + "name": "PUSH [tag]", + "source": 19, + "value": "421" + }, + { + "begin": 12970, + "end": 13042, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 12970, + "end": 13042, + "name": "tag", + "source": 19, + "value": "614" + }, + { + "begin": 12970, + "end": 13042, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "name": "SWAP5", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "name": "POP", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "name": "POP", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "name": "POP", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "name": "POP", + "source": 19 + }, + { + "begin": 12607, + "end": 13049, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13055, + "end": 13387, + "name": "tag", + "source": 19, + "value": "148" + }, + { + "begin": 13055, + "end": 13387, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13176, + "end": 13180, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 13214, + "end": 13216, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 13203, + "end": 13212, + "name": "DUP3", + "source": 19 + }, + { + "begin": 13199, + "end": 13217, + "name": "ADD", + "source": 19 + }, + { + "begin": 13191, + "end": 13217, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 13191, + "end": 13217, + "name": "POP", + "source": 19 + }, + { + "begin": 13227, + "end": 13298, + "name": "PUSH [tag]", + "source": 19, + "value": "616" + }, + { + "begin": 13295, + "end": 13296, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 13284, + "end": 13293, + "name": "DUP4", + "source": 19 + }, + { + "begin": 13280, + "end": 13297, + "name": "ADD", + "source": 19 + }, + { + "begin": 13271, + "end": 13277, + "name": "DUP6", + "source": 19 + }, + { + "begin": 13227, + "end": 13298, + "name": "PUSH [tag]", + "source": 19, + "value": "421" + }, + { + "begin": 13227, + "end": 13298, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13227, + "end": 13298, + "name": "tag", + "source": 19, + "value": "616" + }, + { + "begin": 13227, + "end": 13298, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13308, + "end": 13380, + "name": "PUSH [tag]", + "source": 19, + "value": "617" + }, + { + "begin": 13376, + "end": 13378, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 13365, + "end": 13374, + "name": "DUP4", + "source": 19 + }, + { + "begin": 13361, + "end": 13379, + "name": "ADD", + "source": 19 + }, + { + "begin": 13352, + "end": 13358, + "name": "DUP5", + "source": 19 + }, + { + "begin": 13308, + "end": 13380, + "name": "PUSH [tag]", + "source": 19, + "value": "424" + }, + { + "begin": 13308, + "end": 13380, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13308, + "end": 13380, + "name": "tag", + "source": 19, + "value": "617" + }, + { + "begin": 13308, + "end": 13380, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13055, + "end": 13387, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 13055, + "end": 13387, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 13055, + "end": 13387, + "name": "POP", + "source": 19 + }, + { + "begin": 13055, + "end": 13387, + "name": "POP", + "source": 19 + }, + { + "begin": 13055, + "end": 13387, + "name": "POP", + "source": 19 + }, + { + "begin": 13055, + "end": 13387, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13393, + "end": 13573, + "name": "tag", + "source": 19, + "value": "439" + }, + { + "begin": 13393, + "end": 13573, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13441, + "end": 13518, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 13438, + "end": 13439, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 13431, + "end": 13519, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 13538, + "end": 13542, + "name": "PUSH", + "source": 19, + "value": "11" + }, + { + "begin": 13535, + "end": 13536, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 13528, + "end": 13543, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 13562, + "end": 13566, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 13559, + "end": 13560, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 13552, + "end": 13567, + "name": "REVERT", + "source": 19 + }, + { + "begin": 13579, + "end": 13812, + "name": "tag", + "source": 19, + "value": "154" + }, + { + "begin": 13579, + "end": 13812, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13618, + "end": 13621, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 13641, + "end": 13665, + "name": "PUSH [tag]", + "source": 19, + "value": "620" + }, + { + "begin": 13659, + "end": 13664, + "name": "DUP3", + "source": 19 + }, + { + "begin": 13641, + "end": 13665, + "name": "PUSH [tag]", + "source": 19, + "value": "416" + }, + { + "begin": 13641, + "end": 13665, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13641, + "end": 13665, + "name": "tag", + "source": 19, + "value": "620" + }, + { + "begin": 13641, + "end": 13665, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13632, + "end": 13665, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 13632, + "end": 13665, + "name": "POP", + "source": 19 + }, + { + "begin": 13687, + "end": 13753, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 13680, + "end": 13685, + "name": "DUP3", + "source": 19 + }, + { + "begin": 13677, + "end": 13754, + "name": "SUB", + "source": 19 + }, + { + "begin": 13674, + "end": 13777, + "name": "PUSH [tag]", + "source": 19, + "value": "621" + }, + { + "begin": 13674, + "end": 13777, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 13757, + "end": 13775, + "name": "PUSH [tag]", + "source": 19, + "value": "622" + }, + { + "begin": 13757, + "end": 13775, + "name": "PUSH [tag]", + "source": 19, + "value": "439" + }, + { + "begin": 13757, + "end": 13775, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13757, + "end": 13775, + "name": "tag", + "source": 19, + "value": "622" + }, + { + "begin": 13757, + "end": 13775, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13674, + "end": 13777, + "name": "tag", + "source": 19, + "value": "621" + }, + { + "begin": 13674, + "end": 13777, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13804, + "end": 13805, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 13797, + "end": 13802, + "name": "DUP3", + "source": 19 + }, + { + "begin": 13793, + "end": 13806, + "name": "ADD", + "source": 19 + }, + { + "begin": 13786, + "end": 13806, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 13786, + "end": 13806, + "name": "POP", + "source": 19 + }, + { + "begin": 13579, + "end": 13812, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 13579, + "end": 13812, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 13579, + "end": 13812, + "name": "POP", + "source": 19 + }, + { + "begin": 13579, + "end": 13812, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13818, + "end": 13966, + "name": "tag", + "source": 19, + "value": "440" + }, + { + "begin": 13818, + "end": 13966, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 13920, + "end": 13931, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 13957, + "end": 13960, + "name": "DUP2", + "source": 19 + }, + { + "begin": 13942, + "end": 13960, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 13942, + "end": 13960, + "name": "POP", + "source": 19 + }, + { + "begin": 13818, + "end": 13966, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 13818, + "end": 13966, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 13818, + "end": 13966, + "name": "POP", + "source": 19 + }, + { + "begin": 13818, + "end": 13966, + "name": "POP", + "source": 19 + }, + { + "begin": 13818, + "end": 13966, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 13972, + "end": 14362, + "name": "tag", + "source": 19, + "value": "441" + }, + { + "begin": 13972, + "end": 14362, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14078, + "end": 14081, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 14106, + "end": 14145, + "name": "PUSH [tag]", + "source": 19, + "value": "625" + }, + { + "begin": 14139, + "end": 14144, + "name": "DUP3", + "source": 19 + }, + { + "begin": 14106, + "end": 14145, + "name": "PUSH [tag]", + "source": 19, + "value": "411" + }, + { + "begin": 14106, + "end": 14145, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14106, + "end": 14145, + "name": "tag", + "source": 19, + "value": "625" + }, + { + "begin": 14106, + "end": 14145, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14161, + "end": 14250, + "name": "PUSH [tag]", + "source": 19, + "value": "626" + }, + { + "begin": 14243, + "end": 14249, + "name": "DUP2", + "source": 19 + }, + { + "begin": 14238, + "end": 14241, + "name": "DUP6", + "source": 19 + }, + { + "begin": 14161, + "end": 14250, + "name": "PUSH [tag]", + "source": 19, + "value": "440" + }, + { + "begin": 14161, + "end": 14250, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14161, + "end": 14250, + "name": "tag", + "source": 19, + "value": "626" + }, + { + "begin": 14161, + "end": 14250, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14154, + "end": 14250, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 14154, + "end": 14250, + "name": "POP", + "source": 19 + }, + { + "begin": 14259, + "end": 14324, + "name": "PUSH [tag]", + "source": 19, + "value": "627" + }, + { + "begin": 14317, + "end": 14323, + "name": "DUP2", + "source": 19 + }, + { + "begin": 14312, + "end": 14315, + "name": "DUP6", + "source": 19 + }, + { + "begin": 14305, + "end": 14309, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 14298, + "end": 14303, + "name": "DUP7", + "source": 19 + }, + { + "begin": 14294, + "end": 14310, + "name": "ADD", + "source": 19 + }, + { + "begin": 14259, + "end": 14324, + "name": "PUSH [tag]", + "source": 19, + "value": "413" + }, + { + "begin": 14259, + "end": 14324, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14259, + "end": 14324, + "name": "tag", + "source": 19, + "value": "627" + }, + { + "begin": 14259, + "end": 14324, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14349, + "end": 14355, + "name": "DUP1", + "source": 19 + }, + { + "begin": 14344, + "end": 14347, + "name": "DUP5", + "source": 19 + }, + { + "begin": 14340, + "end": 14356, + "name": "ADD", + "source": 19 + }, + { + "begin": 14333, + "end": 14356, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 14333, + "end": 14356, + "name": "POP", + "source": 19 + }, + { + "begin": 14082, + "end": 14362, + "name": "POP", + "source": 19 + }, + { + "begin": 13972, + "end": 14362, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 13972, + "end": 14362, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 13972, + "end": 14362, + "name": "POP", + "source": 19 + }, + { + "begin": 13972, + "end": 14362, + "name": "POP", + "source": 19 + }, + { + "begin": 13972, + "end": 14362, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14368, + "end": 14523, + "name": "tag", + "source": 19, + "value": "442" + }, + { + "begin": 14368, + "end": 14523, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14508, + "end": 14515, + "name": "PUSH", + "source": 19, + "value": "2E6A736F6E000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 14504, + "end": 14505, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 14496, + "end": 14502, + "name": "DUP3", + "source": 19 + }, + { + "begin": 14492, + "end": 14506, + "name": "ADD", + "source": 19 + }, + { + "begin": 14485, + "end": 14516, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 14368, + "end": 14523, + "name": "POP", + "source": 19 + }, + { + "begin": 14368, + "end": 14523, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14529, + "end": 14929, + "name": "tag", + "source": 19, + "value": "443" + }, + { + "begin": 14529, + "end": 14929, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14689, + "end": 14692, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 14710, + "end": 14794, + "name": "PUSH [tag]", + "source": 19, + "value": "630" + }, + { + "begin": 14792, + "end": 14793, + "name": "PUSH", + "source": 19, + "value": "5" + }, + { + "begin": 14787, + "end": 14790, + "name": "DUP4", + "source": 19 + }, + { + "begin": 14710, + "end": 14794, + "name": "PUSH [tag]", + "source": 19, + "value": "440" + }, + { + "begin": 14710, + "end": 14794, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14710, + "end": 14794, + "name": "tag", + "source": 19, + "value": "630" + }, + { + "begin": 14710, + "end": 14794, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14703, + "end": 14794, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 14703, + "end": 14794, + "name": "POP", + "source": 19 + }, + { + "begin": 14803, + "end": 14896, + "name": "PUSH [tag]", + "source": 19, + "value": "631" + }, + { + "begin": 14892, + "end": 14895, + "name": "DUP3", + "source": 19 + }, + { + "begin": 14803, + "end": 14896, + "name": "PUSH [tag]", + "source": 19, + "value": "442" + }, + { + "begin": 14803, + "end": 14896, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14803, + "end": 14896, + "name": "tag", + "source": 19, + "value": "631" + }, + { + "begin": 14803, + "end": 14896, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 14921, + "end": 14922, + "name": "PUSH", + "source": 19, + "value": "5" + }, + { + "begin": 14916, + "end": 14919, + "name": "DUP3", + "source": 19 + }, + { + "begin": 14912, + "end": 14923, + "name": "ADD", + "source": 19 + }, + { + "begin": 14905, + "end": 14923, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 14905, + "end": 14923, + "name": "POP", + "source": 19 + }, + { + "begin": 14529, + "end": 14929, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 14529, + "end": 14929, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 14529, + "end": 14929, + "name": "POP", + "source": 19 + }, + { + "begin": 14529, + "end": 14929, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 14935, + "end": 15476, + "name": "tag", + "source": 19, + "value": "161" + }, + { + "begin": 14935, + "end": 15476, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 15168, + "end": 15171, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 15190, + "end": 15285, + "name": "PUSH [tag]", + "source": 19, + "value": "633" + }, + { + "begin": 15281, + "end": 15284, + "name": "DUP3", + "source": 19 + }, + { + "begin": 15272, + "end": 15278, + "name": "DUP5", + "source": 19 + }, + { + "begin": 15190, + "end": 15285, + "name": "PUSH [tag]", + "source": 19, + "value": "441" + }, + { + "begin": 15190, + "end": 15285, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 15190, + "end": 15285, + "name": "tag", + "source": 19, + "value": "633" + }, + { + "begin": 15190, + "end": 15285, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 15183, + "end": 15285, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 15183, + "end": 15285, + "name": "POP", + "source": 19 + }, + { + "begin": 15302, + "end": 15450, + "name": "PUSH [tag]", + "source": 19, + "value": "634" + }, + { + "begin": 15446, + "end": 15449, + "name": "DUP3", + "source": 19 + }, + { + "begin": 15302, + "end": 15450, + "name": "PUSH [tag]", + "source": 19, + "value": "443" + }, + { + "begin": 15302, + "end": 15450, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 15302, + "end": 15450, + "name": "tag", + "source": 19, + "value": "634" + }, + { + "begin": 15302, + "end": 15450, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 15295, + "end": 15450, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 15295, + "end": 15450, + "name": "POP", + "source": 19 + }, + { + "begin": 15467, + "end": 15470, + "name": "DUP2", + "source": 19 + }, + { + "begin": 15460, + "end": 15470, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 15460, + "end": 15470, + "name": "POP", + "source": 19 + }, + { + "begin": 14935, + "end": 15476, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 14935, + "end": 15476, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 14935, + "end": 15476, + "name": "POP", + "source": 19 + }, + { + "begin": 14935, + "end": 15476, + "name": "POP", + "source": 19 + }, + { + "begin": 14935, + "end": 15476, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 15482, + "end": 15662, + "name": "tag", + "source": 19, + "value": "171" + }, + { + "begin": 15482, + "end": 15662, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 15530, + "end": 15607, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 15527, + "end": 15528, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 15520, + "end": 15608, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 15627, + "end": 15631, + "name": "PUSH", + "source": 19, + "value": "32" + }, + { + "begin": 15624, + "end": 15625, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 15617, + "end": 15632, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 15651, + "end": 15655, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 15648, + "end": 15649, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 15641, + "end": 15656, + "name": "REVERT", + "source": 19 + }, + { + "begin": 15668, + "end": 15809, + "name": "tag", + "source": 19, + "value": "444" + }, + { + "begin": 15668, + "end": 15809, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 15717, + "end": 15721, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 15740, + "end": 15743, + "name": "DUP2", + "source": 19 + }, + { + "begin": 15732, + "end": 15743, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 15732, + "end": 15743, + "name": "POP", + "source": 19 + }, + { + "begin": 15763, + "end": 15766, + "name": "DUP2", + "source": 19 + }, + { + "begin": 15760, + "end": 15761, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 15753, + "end": 15767, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 15797, + "end": 15801, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 15794, + "end": 15795, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 15784, + "end": 15802, + "name": "KECCAK256", + "source": 19 + }, + { + "begin": 15776, + "end": 15802, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 15776, + "end": 15802, + "name": "POP", + "source": 19 + }, + { + "begin": 15668, + "end": 15809, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 15668, + "end": 15809, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 15668, + "end": 15809, + "name": "POP", + "source": 19 + }, + { + "begin": 15668, + "end": 15809, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 15815, + "end": 15908, + "name": "tag", + "source": 19, + "value": "445" + }, + { + "begin": 15815, + "end": 15908, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 15852, + "end": 15858, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 15899, + "end": 15901, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 15894, + "end": 15896, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 15887, + "end": 15892, + "name": "DUP4", + "source": 19 + }, + { + "begin": 15883, + "end": 15897, + "name": "ADD", + "source": 19 + }, + { + "begin": 15879, + "end": 15902, + "name": "DIV", + "source": 19 + }, + { + "begin": 15869, + "end": 15902, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 15869, + "end": 15902, + "name": "POP", + "source": 19 + }, + { + "begin": 15815, + "end": 15908, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 15815, + "end": 15908, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 15815, + "end": 15908, + "name": "POP", + "source": 19 + }, + { + "begin": 15815, + "end": 15908, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 15914, + "end": 16021, + "name": "tag", + "source": 19, + "value": "446" + }, + { + "begin": 15914, + "end": 16021, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 15958, + "end": 15966, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 16008, + "end": 16013, + "name": "DUP3", + "source": 19 + }, + { + "begin": 16002, + "end": 16006, + "name": "DUP3", + "source": 19 + }, + { + "begin": 15998, + "end": 16014, + "name": "SHL", + "source": 19 + }, + { + "begin": 15977, + "end": 16014, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 15977, + "end": 16014, + "name": "POP", + "source": 19 + }, + { + "begin": 15914, + "end": 16021, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 15914, + "end": 16021, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 15914, + "end": 16021, + "name": "POP", + "source": 19 + }, + { + "begin": 15914, + "end": 16021, + "name": "POP", + "source": 19 + }, + { + "begin": 15914, + "end": 16021, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16027, + "end": 16420, + "name": "tag", + "source": 19, + "value": "447" + }, + { + "begin": 16027, + "end": 16420, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16096, + "end": 16102, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 16146, + "end": 16147, + "name": "PUSH", + "source": 19, + "value": "8" + }, + { + "begin": 16134, + "end": 16144, + "name": "DUP4", + "source": 19 + }, + { + "begin": 16130, + "end": 16148, + "name": "MUL", + "source": 19 + }, + { + "begin": 16169, + "end": 16266, + "name": "PUSH [tag]", + "source": 19, + "value": "640" + }, + { + "begin": 16199, + "end": 16265, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 16188, + "end": 16197, + "name": "DUP3", + "source": 19 + }, + { + "begin": 16169, + "end": 16266, + "name": "PUSH [tag]", + "source": 19, + "value": "446" + }, + { + "begin": 16169, + "end": 16266, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16169, + "end": 16266, + "name": "tag", + "source": 19, + "value": "640" + }, + { + "begin": 16169, + "end": 16266, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16287, + "end": 16326, + "name": "PUSH [tag]", + "source": 19, + "value": "641" + }, + { + "begin": 16317, + "end": 16325, + "name": "DUP7", + "source": 19 + }, + { + "begin": 16306, + "end": 16315, + "name": "DUP4", + "source": 19 + }, + { + "begin": 16287, + "end": 16326, + "name": "PUSH [tag]", + "source": 19, + "value": "446" + }, + { + "begin": 16287, + "end": 16326, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16287, + "end": 16326, + "name": "tag", + "source": 19, + "value": "641" + }, + { + "begin": 16287, + "end": 16326, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16275, + "end": 16326, + "name": "SWAP6", + "source": 19 + }, + { + "begin": 16275, + "end": 16326, + "name": "POP", + "source": 19 + }, + { + "begin": 16359, + "end": 16363, + "name": "DUP1", + "source": 19 + }, + { + "begin": 16355, + "end": 16364, + "name": "NOT", + "source": 19 + }, + { + "begin": 16348, + "end": 16353, + "name": "DUP5", + "source": 19 + }, + { + "begin": 16344, + "end": 16365, + "name": "AND", + "source": 19 + }, + { + "begin": 16335, + "end": 16365, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 16335, + "end": 16365, + "name": "POP", + "source": 19 + }, + { + "begin": 16408, + "end": 16412, + "name": "DUP1", + "source": 19 + }, + { + "begin": 16398, + "end": 16406, + "name": "DUP7", + "source": 19 + }, + { + "begin": 16394, + "end": 16413, + "name": "AND", + "source": 19 + }, + { + "begin": 16387, + "end": 16392, + "name": "DUP5", + "source": 19 + }, + { + "begin": 16384, + "end": 16414, + "name": "OR", + "source": 19 + }, + { + "begin": 16374, + "end": 16414, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 16374, + "end": 16414, + "name": "POP", + "source": 19 + }, + { + "begin": 16103, + "end": 16420, + "name": "POP", + "source": 19 + }, + { + "begin": 16103, + "end": 16420, + "name": "POP", + "source": 19 + }, + { + "begin": 16027, + "end": 16420, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 16027, + "end": 16420, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 16027, + "end": 16420, + "name": "POP", + "source": 19 + }, + { + "begin": 16027, + "end": 16420, + "name": "POP", + "source": 19 + }, + { + "begin": 16027, + "end": 16420, + "name": "POP", + "source": 19 + }, + { + "begin": 16027, + "end": 16420, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16426, + "end": 16486, + "name": "tag", + "source": 19, + "value": "448" + }, + { + "begin": 16426, + "end": 16486, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16454, + "end": 16457, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 16475, + "end": 16480, + "name": "DUP2", + "source": 19 + }, + { + "begin": 16468, + "end": 16480, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 16468, + "end": 16480, + "name": "POP", + "source": 19 + }, + { + "begin": 16426, + "end": 16486, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 16426, + "end": 16486, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 16426, + "end": 16486, + "name": "POP", + "source": 19 + }, + { + "begin": 16426, + "end": 16486, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16492, + "end": 16634, + "name": "tag", + "source": 19, + "value": "449" + }, + { + "begin": 16492, + "end": 16634, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16542, + "end": 16551, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 16575, + "end": 16628, + "name": "PUSH [tag]", + "source": 19, + "value": "644" + }, + { + "begin": 16593, + "end": 16627, + "name": "PUSH [tag]", + "source": 19, + "value": "645" + }, + { + "begin": 16602, + "end": 16626, + "name": "PUSH [tag]", + "source": 19, + "value": "646" + }, + { + "begin": 16620, + "end": 16625, + "name": "DUP5", + "source": 19 + }, + { + "begin": 16602, + "end": 16626, + "name": "PUSH [tag]", + "source": 19, + "value": "416" + }, + { + "begin": 16602, + "end": 16626, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16602, + "end": 16626, + "name": "tag", + "source": 19, + "value": "646" + }, + { + "begin": 16602, + "end": 16626, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16593, + "end": 16627, + "name": "PUSH [tag]", + "source": 19, + "value": "448" + }, + { + "begin": 16593, + "end": 16627, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16593, + "end": 16627, + "name": "tag", + "source": 19, + "value": "645" + }, + { + "begin": 16593, + "end": 16627, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16575, + "end": 16628, + "name": "PUSH [tag]", + "source": 19, + "value": "416" + }, + { + "begin": 16575, + "end": 16628, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16575, + "end": 16628, + "name": "tag", + "source": 19, + "value": "644" + }, + { + "begin": 16575, + "end": 16628, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16562, + "end": 16628, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 16562, + "end": 16628, + "name": "POP", + "source": 19 + }, + { + "begin": 16492, + "end": 16634, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 16492, + "end": 16634, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 16492, + "end": 16634, + "name": "POP", + "source": 19 + }, + { + "begin": 16492, + "end": 16634, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16640, + "end": 16715, + "name": "tag", + "source": 19, + "value": "450" + }, + { + "begin": 16640, + "end": 16715, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16683, + "end": 16686, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 16704, + "end": 16709, + "name": "DUP2", + "source": 19 + }, + { + "begin": 16697, + "end": 16709, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 16697, + "end": 16709, + "name": "POP", + "source": 19 + }, + { + "begin": 16640, + "end": 16715, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 16640, + "end": 16715, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 16640, + "end": 16715, + "name": "POP", + "source": 19 + }, + { + "begin": 16640, + "end": 16715, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16721, + "end": 16990, + "name": "tag", + "source": 19, + "value": "451" + }, + { + "begin": 16721, + "end": 16990, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16831, + "end": 16870, + "name": "PUSH [tag]", + "source": 19, + "value": "649" + }, + { + "begin": 16862, + "end": 16869, + "name": "DUP4", + "source": 19 + }, + { + "begin": 16831, + "end": 16870, + "name": "PUSH [tag]", + "source": 19, + "value": "449" + }, + { + "begin": 16831, + "end": 16870, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16831, + "end": 16870, + "name": "tag", + "source": 19, + "value": "649" + }, + { + "begin": 16831, + "end": 16870, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16892, + "end": 16983, + "name": "PUSH [tag]", + "source": 19, + "value": "650" + }, + { + "begin": 16941, + "end": 16982, + "name": "PUSH [tag]", + "source": 19, + "value": "651" + }, + { + "begin": 16965, + "end": 16981, + "name": "DUP3", + "source": 19 + }, + { + "begin": 16941, + "end": 16982, + "name": "PUSH [tag]", + "source": 19, + "value": "450" + }, + { + "begin": 16941, + "end": 16982, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16941, + "end": 16982, + "name": "tag", + "source": 19, + "value": "651" + }, + { + "begin": 16941, + "end": 16982, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16933, + "end": 16939, + "name": "DUP5", + "source": 19 + }, + { + "begin": 16926, + "end": 16930, + "name": "DUP5", + "source": 19 + }, + { + "begin": 16920, + "end": 16931, + "name": "SLOAD", + "source": 19 + }, + { + "begin": 16892, + "end": 16983, + "name": "PUSH [tag]", + "source": 19, + "value": "447" + }, + { + "begin": 16892, + "end": 16983, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16892, + "end": 16983, + "name": "tag", + "source": 19, + "value": "650" + }, + { + "begin": 16892, + "end": 16983, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 16886, + "end": 16890, + "name": "DUP3", + "source": 19 + }, + { + "begin": 16879, + "end": 16984, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 16797, + "end": 16990, + "name": "POP", + "source": 19 + }, + { + "begin": 16721, + "end": 16990, + "name": "POP", + "source": 19 + }, + { + "begin": 16721, + "end": 16990, + "name": "POP", + "source": 19 + }, + { + "begin": 16721, + "end": 16990, + "name": "POP", + "source": 19 + }, + { + "begin": 16721, + "end": 16990, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 16996, + "end": 17069, + "name": "tag", + "source": 19, + "value": "452" + }, + { + "begin": 16996, + "end": 17069, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17041, + "end": 17044, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 16996, + "end": 17069, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 16996, + "end": 17069, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17075, + "end": 17264, + "name": "tag", + "source": 19, + "value": "453" + }, + { + "begin": 17075, + "end": 17264, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17152, + "end": 17184, + "name": "PUSH [tag]", + "source": 19, + "value": "654" + }, + { + "begin": 17152, + "end": 17184, + "name": "PUSH [tag]", + "source": 19, + "value": "452" + }, + { + "begin": 17152, + "end": 17184, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17152, + "end": 17184, + "name": "tag", + "source": 19, + "value": "654" + }, + { + "begin": 17152, + "end": 17184, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17193, + "end": 17258, + "name": "PUSH [tag]", + "source": 19, + "value": "655" + }, + { + "begin": 17251, + "end": 17257, + "name": "DUP2", + "source": 19 + }, + { + "begin": 17243, + "end": 17249, + "name": "DUP5", + "source": 19 + }, + { + "begin": 17237, + "end": 17241, + "name": "DUP5", + "source": 19 + }, + { + "begin": 17193, + "end": 17258, + "name": "PUSH [tag]", + "source": 19, + "value": "451" + }, + { + "begin": 17193, + "end": 17258, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17193, + "end": 17258, + "name": "tag", + "source": 19, + "value": "655" + }, + { + "begin": 17193, + "end": 17258, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17128, + "end": 17264, + "name": "POP", + "source": 19 + }, + { + "begin": 17075, + "end": 17264, + "name": "POP", + "source": 19 + }, + { + "begin": 17075, + "end": 17264, + "name": "POP", + "source": 19 + }, + { + "begin": 17075, + "end": 17264, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17270, + "end": 17456, + "name": "tag", + "source": 19, + "value": "454" + }, + { + "begin": 17270, + "end": 17456, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17330, + "end": 17450, + "name": "tag", + "source": 19, + "value": "657" + }, + { + "begin": 17330, + "end": 17450, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17347, + "end": 17350, + "name": "DUP2", + "source": 19 + }, + { + "begin": 17340, + "end": 17345, + "name": "DUP2", + "source": 19 + }, + { + "begin": 17337, + "end": 17351, + "name": "LT", + "source": 19 + }, + { + "begin": 17330, + "end": 17450, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 17330, + "end": 17450, + "name": "PUSH [tag]", + "source": 19, + "value": "659" + }, + { + "begin": 17330, + "end": 17450, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 17401, + "end": 17440, + "name": "PUSH [tag]", + "source": 19, + "value": "660" + }, + { + "begin": 17438, + "end": 17439, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 17431, + "end": 17436, + "name": "DUP3", + "source": 19 + }, + { + "begin": 17401, + "end": 17440, + "name": "PUSH [tag]", + "source": 19, + "value": "453" + }, + { + "begin": 17401, + "end": 17440, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17401, + "end": 17440, + "name": "tag", + "source": 19, + "value": "660" + }, + { + "begin": 17401, + "end": 17440, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17374, + "end": 17375, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 17367, + "end": 17372, + "name": "DUP2", + "source": 19 + }, + { + "begin": 17363, + "end": 17376, + "name": "ADD", + "source": 19 + }, + { + "begin": 17354, + "end": 17376, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 17354, + "end": 17376, + "name": "POP", + "source": 19 + }, + { + "begin": 17330, + "end": 17450, + "name": "PUSH [tag]", + "source": 19, + "value": "657" + }, + { + "begin": 17330, + "end": 17450, + "name": "JUMP", + "source": 19 + }, + { + "begin": 17330, + "end": 17450, + "name": "tag", + "source": 19, + "value": "659" + }, + { + "begin": 17330, + "end": 17450, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17270, + "end": 17456, + "name": "POP", + "source": 19 + }, + { + "begin": 17270, + "end": 17456, + "name": "POP", + "source": 19 + }, + { + "begin": 17270, + "end": 17456, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17462, + "end": 18005, + "name": "tag", + "source": 19, + "value": "455" + }, + { + "begin": 17462, + "end": 18005, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17563, + "end": 17565, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 17558, + "end": 17561, + "name": "DUP3", + "source": 19 + }, + { + "begin": 17555, + "end": 17566, + "name": "GT", + "source": 19 + }, + { + "begin": 17552, + "end": 17998, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 17552, + "end": 17998, + "name": "PUSH [tag]", + "source": 19, + "value": "662" + }, + { + "begin": 17552, + "end": 17998, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 17597, + "end": 17635, + "name": "PUSH [tag]", + "source": 19, + "value": "663" + }, + { + "begin": 17629, + "end": 17634, + "name": "DUP2", + "source": 19 + }, + { + "begin": 17597, + "end": 17635, + "name": "PUSH [tag]", + "source": 19, + "value": "444" + }, + { + "begin": 17597, + "end": 17635, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17597, + "end": 17635, + "name": "tag", + "source": 19, + "value": "663" + }, + { + "begin": 17597, + "end": 17635, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17681, + "end": 17710, + "name": "PUSH [tag]", + "source": 19, + "value": "664" + }, + { + "begin": 17699, + "end": 17709, + "name": "DUP5", + "source": 19 + }, + { + "begin": 17681, + "end": 17710, + "name": "PUSH [tag]", + "source": 19, + "value": "445" + }, + { + "begin": 17681, + "end": 17710, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17681, + "end": 17710, + "name": "tag", + "source": 19, + "value": "664" + }, + { + "begin": 17681, + "end": 17710, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17671, + "end": 17679, + "name": "DUP2", + "source": 19 + }, + { + "begin": 17667, + "end": 17711, + "name": "ADD", + "source": 19 + }, + { + "begin": 17864, + "end": 17866, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 17852, + "end": 17862, + "name": "DUP6", + "source": 19 + }, + { + "begin": 17849, + "end": 17867, + "name": "LT", + "source": 19 + }, + { + "begin": 17846, + "end": 17895, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 17846, + "end": 17895, + "name": "PUSH [tag]", + "source": 19, + "value": "665" + }, + { + "begin": 17846, + "end": 17895, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 17885, + "end": 17893, + "name": "DUP2", + "source": 19 + }, + { + "begin": 17870, + "end": 17893, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 17870, + "end": 17893, + "name": "POP", + "source": 19 + }, + { + "begin": 17846, + "end": 17895, + "name": "tag", + "source": 19, + "value": "665" + }, + { + "begin": 17846, + "end": 17895, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17908, + "end": 17988, + "name": "PUSH [tag]", + "source": 19, + "value": "666" + }, + { + "begin": 17964, + "end": 17986, + "name": "PUSH [tag]", + "source": 19, + "value": "667" + }, + { + "begin": 17982, + "end": 17985, + "name": "DUP6", + "source": 19 + }, + { + "begin": 17964, + "end": 17986, + "name": "PUSH [tag]", + "source": 19, + "value": "445" + }, + { + "begin": 17964, + "end": 17986, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17964, + "end": 17986, + "name": "tag", + "source": 19, + "value": "667" + }, + { + "begin": 17964, + "end": 17986, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17954, + "end": 17962, + "name": "DUP4", + "source": 19 + }, + { + "begin": 17950, + "end": 17987, + "name": "ADD", + "source": 19 + }, + { + "begin": 17937, + "end": 17948, + "name": "DUP3", + "source": 19 + }, + { + "begin": 17908, + "end": 17988, + "name": "PUSH [tag]", + "source": 19, + "value": "454" + }, + { + "begin": 17908, + "end": 17988, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 17908, + "end": 17988, + "name": "tag", + "source": 19, + "value": "666" + }, + { + "begin": 17908, + "end": 17988, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17567, + "end": 17998, + "name": "POP", + "source": 19 + }, + { + "begin": 17567, + "end": 17998, + "name": "POP", + "source": 19 + }, + { + "begin": 17552, + "end": 17998, + "name": "tag", + "source": 19, + "value": "662" + }, + { + "begin": 17552, + "end": 17998, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 17462, + "end": 18005, + "name": "POP", + "source": 19 + }, + { + "begin": 17462, + "end": 18005, + "name": "POP", + "source": 19 + }, + { + "begin": 17462, + "end": 18005, + "name": "POP", + "source": 19 + }, + { + "begin": 17462, + "end": 18005, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18011, + "end": 18128, + "name": "tag", + "source": 19, + "value": "456" + }, + { + "begin": 18011, + "end": 18128, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18065, + "end": 18073, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 18115, + "end": 18120, + "name": "DUP3", + "source": 19 + }, + { + "begin": 18109, + "end": 18113, + "name": "DUP3", + "source": 19 + }, + { + "begin": 18105, + "end": 18121, + "name": "SHR", + "source": 19 + }, + { + "begin": 18084, + "end": 18121, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 18084, + "end": 18121, + "name": "POP", + "source": 19 + }, + { + "begin": 18011, + "end": 18128, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 18011, + "end": 18128, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 18011, + "end": 18128, + "name": "POP", + "source": 19 + }, + { + "begin": 18011, + "end": 18128, + "name": "POP", + "source": 19 + }, + { + "begin": 18011, + "end": 18128, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18134, + "end": 18303, + "name": "tag", + "source": 19, + "value": "457" + }, + { + "begin": 18134, + "end": 18303, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18178, + "end": 18184, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 18211, + "end": 18262, + "name": "PUSH [tag]", + "source": 19, + "value": "670" + }, + { + "begin": 18259, + "end": 18260, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 18255, + "end": 18261, + "name": "NOT", + "source": 19 + }, + { + "begin": 18247, + "end": 18252, + "name": "DUP5", + "source": 19 + }, + { + "begin": 18244, + "end": 18245, + "name": "PUSH", + "source": 19, + "value": "8" + }, + { + "begin": 18240, + "end": 18253, + "name": "MUL", + "source": 19 + }, + { + "begin": 18211, + "end": 18262, + "name": "PUSH [tag]", + "source": 19, + "value": "456" + }, + { + "begin": 18211, + "end": 18262, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18211, + "end": 18262, + "name": "tag", + "source": 19, + "value": "670" + }, + { + "begin": 18211, + "end": 18262, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18207, + "end": 18263, + "name": "NOT", + "source": 19 + }, + { + "begin": 18292, + "end": 18296, + "name": "DUP1", + "source": 19 + }, + { + "begin": 18286, + "end": 18290, + "name": "DUP4", + "source": 19 + }, + { + "begin": 18282, + "end": 18297, + "name": "AND", + "source": 19 + }, + { + "begin": 18272, + "end": 18297, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 18272, + "end": 18297, + "name": "POP", + "source": 19 + }, + { + "begin": 18185, + "end": 18303, + "name": "POP", + "source": 19 + }, + { + "begin": 18134, + "end": 18303, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 18134, + "end": 18303, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 18134, + "end": 18303, + "name": "POP", + "source": 19 + }, + { + "begin": 18134, + "end": 18303, + "name": "POP", + "source": 19 + }, + { + "begin": 18134, + "end": 18303, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18308, + "end": 18603, + "name": "tag", + "source": 19, + "value": "458" + }, + { + "begin": 18308, + "end": 18603, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18384, + "end": 18388, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 18530, + "end": 18559, + "name": "PUSH [tag]", + "source": 19, + "value": "672" + }, + { + "begin": 18555, + "end": 18558, + "name": "DUP4", + "source": 19 + }, + { + "begin": 18549, + "end": 18553, + "name": "DUP4", + "source": 19 + }, + { + "begin": 18530, + "end": 18559, + "name": "PUSH [tag]", + "source": 19, + "value": "457" + }, + { + "begin": 18530, + "end": 18559, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18530, + "end": 18559, + "name": "tag", + "source": 19, + "value": "672" + }, + { + "begin": 18530, + "end": 18559, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18522, + "end": 18559, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 18522, + "end": 18559, + "name": "POP", + "source": 19 + }, + { + "begin": 18592, + "end": 18595, + "name": "DUP3", + "source": 19 + }, + { + "begin": 18589, + "end": 18590, + "name": "PUSH", + "source": 19, + "value": "2" + }, + { + "begin": 18585, + "end": 18596, + "name": "MUL", + "source": 19 + }, + { + "begin": 18579, + "end": 18583, + "name": "DUP3", + "source": 19 + }, + { + "begin": 18576, + "end": 18597, + "name": "OR", + "source": 19 + }, + { + "begin": 18568, + "end": 18597, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 18568, + "end": 18597, + "name": "POP", + "source": 19 + }, + { + "begin": 18308, + "end": 18603, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 18308, + "end": 18603, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 18308, + "end": 18603, + "name": "POP", + "source": 19 + }, + { + "begin": 18308, + "end": 18603, + "name": "POP", + "source": 19 + }, + { + "begin": 18308, + "end": 18603, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18608, + "end": 20003, + "name": "tag", + "source": 19, + "value": "177" + }, + { + "begin": 18608, + "end": 20003, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18725, + "end": 18762, + "name": "PUSH [tag]", + "source": 19, + "value": "674" + }, + { + "begin": 18758, + "end": 18761, + "name": "DUP3", + "source": 19 + }, + { + "begin": 18725, + "end": 18762, + "name": "PUSH [tag]", + "source": 19, + "value": "411" + }, + { + "begin": 18725, + "end": 18762, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18725, + "end": 18762, + "name": "tag", + "source": 19, + "value": "674" + }, + { + "begin": 18725, + "end": 18762, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18827, + "end": 18845, + "name": "PUSH", + "source": 19, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 18819, + "end": 18825, + "name": "DUP2", + "source": 19 + }, + { + "begin": 18816, + "end": 18846, + "name": "GT", + "source": 19 + }, + { + "begin": 18813, + "end": 18869, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 18813, + "end": 18869, + "name": "PUSH [tag]", + "source": 19, + "value": "675" + }, + { + "begin": 18813, + "end": 18869, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 18849, + "end": 18867, + "name": "PUSH [tag]", + "source": 19, + "value": "676" + }, + { + "begin": 18849, + "end": 18867, + "name": "PUSH [tag]", + "source": 19, + "value": "250" + }, + { + "begin": 18849, + "end": 18867, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18849, + "end": 18867, + "name": "tag", + "source": 19, + "value": "676" + }, + { + "begin": 18849, + "end": 18867, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18813, + "end": 18869, + "name": "tag", + "source": 19, + "value": "675" + }, + { + "begin": 18813, + "end": 18869, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18893, + "end": 18931, + "name": "PUSH [tag]", + "source": 19, + "value": "677" + }, + { + "begin": 18925, + "end": 18929, + "name": "DUP3", + "source": 19 + }, + { + "begin": 18919, + "end": 18930, + "name": "SLOAD", + "source": 19 + }, + { + "begin": 18893, + "end": 18931, + "name": "PUSH [tag]", + "source": 19, + "value": "119" + }, + { + "begin": 18893, + "end": 18931, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18893, + "end": 18931, + "name": "tag", + "source": 19, + "value": "677" + }, + { + "begin": 18893, + "end": 18931, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 18978, + "end": 19045, + "name": "PUSH [tag]", + "source": 19, + "value": "678" + }, + { + "begin": 19038, + "end": 19044, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19030, + "end": 19036, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19024, + "end": 19028, + "name": "DUP6", + "source": 19 + }, + { + "begin": 18978, + "end": 19045, + "name": "PUSH [tag]", + "source": 19, + "value": "455" + }, + { + "begin": 18978, + "end": 19045, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 18978, + "end": 19045, + "name": "tag", + "source": 19, + "value": "678" + }, + { + "begin": 18978, + "end": 19045, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19072, + "end": 19073, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 19096, + "end": 19100, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 19083, + "end": 19100, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 19083, + "end": 19100, + "name": "POP", + "source": 19 + }, + { + "begin": 19128, + "end": 19130, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 19120, + "end": 19126, + "name": "DUP4", + "source": 19 + }, + { + "begin": 19117, + "end": 19131, + "name": "GT", + "source": 19 + }, + { + "begin": 19145, + "end": 19146, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 19140, + "end": 19758, + "name": "DUP2", + "source": 19 + }, + { + "begin": 19140, + "end": 19758, + "name": "EQ", + "source": 19 + }, + { + "begin": 19140, + "end": 19758, + "name": "PUSH [tag]", + "source": 19, + "value": "680" + }, + { + "begin": 19140, + "end": 19758, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 19802, + "end": 19803, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 19819, + "end": 19825, + "name": "DUP5", + "source": 19 + }, + { + "begin": 19816, + "end": 19893, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 19816, + "end": 19893, + "name": "PUSH [tag]", + "source": 19, + "value": "681" + }, + { + "begin": 19816, + "end": 19893, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 19868, + "end": 19877, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19863, + "end": 19866, + "name": "DUP8", + "source": 19 + }, + { + "begin": 19859, + "end": 19878, + "name": "ADD", + "source": 19 + }, + { + "begin": 19853, + "end": 19879, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 19844, + "end": 19879, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 19844, + "end": 19879, + "name": "POP", + "source": 19 + }, + { + "begin": 19816, + "end": 19893, + "name": "tag", + "source": 19, + "value": "681" + }, + { + "begin": 19816, + "end": 19893, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19919, + "end": 19986, + "name": "PUSH [tag]", + "source": 19, + "value": "682" + }, + { + "begin": 19979, + "end": 19985, + "name": "DUP6", + "source": 19 + }, + { + "begin": 19972, + "end": 19977, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19919, + "end": 19986, + "name": "PUSH [tag]", + "source": 19, + "value": "458" + }, + { + "begin": 19919, + "end": 19986, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 19919, + "end": 19986, + "name": "tag", + "source": 19, + "value": "682" + }, + { + "begin": 19919, + "end": 19986, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19913, + "end": 19917, + "name": "DUP7", + "source": 19 + }, + { + "begin": 19906, + "end": 19987, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 19775, + "end": 19997, + "name": "POP", + "source": 19 + }, + { + "begin": 19110, + "end": 19997, + "name": "PUSH [tag]", + "source": 19, + "value": "679" + }, + { + "begin": 19110, + "end": 19997, + "name": "JUMP", + "source": 19 + }, + { + "begin": 19140, + "end": 19758, + "name": "tag", + "source": 19, + "value": "680" + }, + { + "begin": 19140, + "end": 19758, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19192, + "end": 19196, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 19188, + "end": 19197, + "name": "NOT", + "source": 19 + }, + { + "begin": 19180, + "end": 19186, + "name": "DUP5", + "source": 19 + }, + { + "begin": 19176, + "end": 19198, + "name": "AND", + "source": 19 + }, + { + "begin": 19226, + "end": 19263, + "name": "PUSH [tag]", + "source": 19, + "value": "683" + }, + { + "begin": 19258, + "end": 19262, + "name": "DUP7", + "source": 19 + }, + { + "begin": 19226, + "end": 19263, + "name": "PUSH [tag]", + "source": 19, + "value": "444" + }, + { + "begin": 19226, + "end": 19263, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 19226, + "end": 19263, + "name": "tag", + "source": 19, + "value": "683" + }, + { + "begin": 19226, + "end": 19263, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19285, + "end": 19286, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 19299, + "end": 19507, + "name": "tag", + "source": 19, + "value": "684" + }, + { + "begin": 19299, + "end": 19507, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19313, + "end": 19320, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19310, + "end": 19311, + "name": "DUP2", + "source": 19 + }, + { + "begin": 19307, + "end": 19321, + "name": "LT", + "source": 19 + }, + { + "begin": 19299, + "end": 19507, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 19299, + "end": 19507, + "name": "PUSH [tag]", + "source": 19, + "value": "686" + }, + { + "begin": 19299, + "end": 19507, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 19392, + "end": 19401, + "name": "DUP5", + "source": 19 + }, + { + "begin": 19387, + "end": 19390, + "name": "DUP10", + "source": 19 + }, + { + "begin": 19383, + "end": 19402, + "name": "ADD", + "source": 19 + }, + { + "begin": 19377, + "end": 19403, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 19369, + "end": 19375, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19362, + "end": 19404, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 19443, + "end": 19444, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 19435, + "end": 19441, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19431, + "end": 19445, + "name": "ADD", + "source": 19 + }, + { + "begin": 19421, + "end": 19445, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 19421, + "end": 19445, + "name": "POP", + "source": 19 + }, + { + "begin": 19490, + "end": 19492, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 19479, + "end": 19488, + "name": "DUP6", + "source": 19 + }, + { + "begin": 19475, + "end": 19493, + "name": "ADD", + "source": 19 + }, + { + "begin": 19462, + "end": 19493, + "name": "SWAP5", + "source": 19 + }, + { + "begin": 19462, + "end": 19493, + "name": "POP", + "source": 19 + }, + { + "begin": 19336, + "end": 19340, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 19333, + "end": 19334, + "name": "DUP2", + "source": 19 + }, + { + "begin": 19329, + "end": 19341, + "name": "ADD", + "source": 19 + }, + { + "begin": 19324, + "end": 19341, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 19324, + "end": 19341, + "name": "POP", + "source": 19 + }, + { + "begin": 19299, + "end": 19507, + "name": "PUSH [tag]", + "source": 19, + "value": "684" + }, + { + "begin": 19299, + "end": 19507, + "name": "JUMP", + "source": 19 + }, + { + "begin": 19299, + "end": 19507, + "name": "tag", + "source": 19, + "value": "686" + }, + { + "begin": 19299, + "end": 19507, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19535, + "end": 19541, + "name": "DUP7", + "source": 19 + }, + { + "begin": 19526, + "end": 19533, + "name": "DUP4", + "source": 19 + }, + { + "begin": 19523, + "end": 19542, + "name": "LT", + "source": 19 + }, + { + "begin": 19520, + "end": 19699, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 19520, + "end": 19699, + "name": "PUSH [tag]", + "source": 19, + "value": "687" + }, + { + "begin": 19520, + "end": 19699, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 19593, + "end": 19602, + "name": "DUP5", + "source": 19 + }, + { + "begin": 19588, + "end": 19591, + "name": "DUP10", + "source": 19 + }, + { + "begin": 19584, + "end": 19603, + "name": "ADD", + "source": 19 + }, + { + "begin": 19578, + "end": 19604, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 19636, + "end": 19684, + "name": "PUSH [tag]", + "source": 19, + "value": "688" + }, + { + "begin": 19678, + "end": 19682, + "name": "PUSH", + "source": 19, + "value": "1F" + }, + { + "begin": 19670, + "end": 19676, + "name": "DUP10", + "source": 19 + }, + { + "begin": 19666, + "end": 19683, + "name": "AND", + "source": 19 + }, + { + "begin": 19655, + "end": 19664, + "name": "DUP3", + "source": 19 + }, + { + "begin": 19636, + "end": 19684, + "name": "PUSH [tag]", + "source": 19, + "value": "457" + }, + { + "begin": 19636, + "end": 19684, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 19636, + "end": 19684, + "name": "tag", + "source": 19, + "value": "688" + }, + { + "begin": 19636, + "end": 19684, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19628, + "end": 19634, + "name": "DUP4", + "source": 19 + }, + { + "begin": 19621, + "end": 19685, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 19543, + "end": 19699, + "name": "POP", + "source": 19 + }, + { + "begin": 19520, + "end": 19699, + "name": "tag", + "source": 19, + "value": "687" + }, + { + "begin": 19520, + "end": 19699, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19745, + "end": 19746, + "name": "PUSH", + "source": 19, + "value": "1" + }, + { + "begin": 19741, + "end": 19742, + "name": "PUSH", + "source": 19, + "value": "2" + }, + { + "begin": 19733, + "end": 19739, + "name": "DUP9", + "source": 19 + }, + { + "begin": 19729, + "end": 19743, + "name": "MUL", + "source": 19 + }, + { + "begin": 19725, + "end": 19747, + "name": "ADD", + "source": 19 + }, + { + "begin": 19719, + "end": 19723, + "name": "DUP9", + "source": 19 + }, + { + "begin": 19712, + "end": 19748, + "name": "SSTORE", + "source": 19 + }, + { + "begin": 19147, + "end": 19758, + "name": "POP", + "source": 19 + }, + { + "begin": 19147, + "end": 19758, + "name": "POP", + "source": 19 + }, + { + "begin": 19147, + "end": 19758, + "name": "POP", + "source": 19 + }, + { + "begin": 19110, + "end": 19997, + "name": "tag", + "source": 19, + "value": "679" + }, + { + "begin": 19110, + "end": 19997, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 19110, + "end": 19997, + "name": "POP", + "source": 19 + }, + { + "begin": 18700, + "end": 20003, + "name": "POP", + "source": 19 + }, + { + "begin": 18700, + "end": 20003, + "name": "POP", + "source": 19 + }, + { + "begin": 18700, + "end": 20003, + "name": "POP", + "source": 19 + }, + { + "begin": 18608, + "end": 20003, + "name": "POP", + "source": 19 + }, + { + "begin": 18608, + "end": 20003, + "name": "POP", + "source": 19 + }, + { + "begin": 18608, + "end": 20003, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 20009, + "end": 20710, + "name": "tag", + "source": 19, + "value": "211" + }, + { + "begin": 20009, + "end": 20710, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 20290, + "end": 20293, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 20312, + "end": 20407, + "name": "PUSH [tag]", + "source": 19, + "value": "690" + }, + { + "begin": 20403, + "end": 20406, + "name": "DUP3", + "source": 19 + }, + { + "begin": 20394, + "end": 20400, + "name": "DUP6", + "source": 19 + }, + { + "begin": 20312, + "end": 20407, + "name": "PUSH [tag]", + "source": 19, + "value": "441" + }, + { + "begin": 20312, + "end": 20407, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 20312, + "end": 20407, + "name": "tag", + "source": 19, + "value": "690" + }, + { + "begin": 20312, + "end": 20407, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 20305, + "end": 20407, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 20305, + "end": 20407, + "name": "POP", + "source": 19 + }, + { + "begin": 20424, + "end": 20519, + "name": "PUSH [tag]", + "source": 19, + "value": "691" + }, + { + "begin": 20515, + "end": 20518, + "name": "DUP3", + "source": 19 + }, + { + "begin": 20506, + "end": 20512, + "name": "DUP5", + "source": 19 + }, + { + "begin": 20424, + "end": 20519, + "name": "PUSH [tag]", + "source": 19, + "value": "441" + }, + { + "begin": 20424, + "end": 20519, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 20424, + "end": 20519, + "name": "tag", + "source": 19, + "value": "691" + }, + { + "begin": 20424, + "end": 20519, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 20417, + "end": 20519, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 20417, + "end": 20519, + "name": "POP", + "source": 19 + }, + { + "begin": 20536, + "end": 20684, + "name": "PUSH [tag]", + "source": 19, + "value": "692" + }, + { + "begin": 20680, + "end": 20683, + "name": "DUP3", + "source": 19 + }, + { + "begin": 20536, + "end": 20684, + "name": "PUSH [tag]", + "source": 19, + "value": "443" + }, + { + "begin": 20536, + "end": 20684, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 20536, + "end": 20684, + "name": "tag", + "source": 19, + "value": "692" + }, + { + "begin": 20536, + "end": 20684, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 20529, + "end": 20684, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 20529, + "end": 20684, + "name": "POP", + "source": 19 + }, + { + "begin": 20701, + "end": 20704, + "name": "DUP2", + "source": 19 + }, + { + "begin": 20694, + "end": 20704, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 20694, + "end": 20704, + "name": "POP", + "source": 19 + }, + { + "begin": 20009, + "end": 20710, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 20009, + "end": 20710, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 20009, + "end": 20710, + "name": "POP", + "source": 19 + }, + { + "begin": 20009, + "end": 20710, + "name": "POP", + "source": 19 + }, + { + "begin": 20009, + "end": 20710, + "name": "POP", + "source": 19 + }, + { + "begin": 20009, + "end": 20710, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 20716, + "end": 20896, + "name": "tag", + "source": 19, + "value": "256" + }, + { + "begin": 20716, + "end": 20896, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 20764, + "end": 20841, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 20761, + "end": 20762, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 20754, + "end": 20842, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 20861, + "end": 20865, + "name": "PUSH", + "source": 19, + "value": "12" + }, + { + "begin": 20858, + "end": 20859, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 20851, + "end": 20866, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 20885, + "end": 20889, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 20882, + "end": 20883, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 20875, + "end": 20890, + "name": "REVERT", + "source": 19 + }, + { + "begin": 20902, + "end": 21000, + "name": "tag", + "source": 19, + "value": "459" + }, + { + "begin": 20902, + "end": 21000, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 20953, + "end": 20959, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 20987, + "end": 20992, + "name": "DUP2", + "source": 19 + }, + { + "begin": 20981, + "end": 20993, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 20971, + "end": 20993, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 20971, + "end": 20993, + "name": "POP", + "source": 19 + }, + { + "begin": 20902, + "end": 21000, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 20902, + "end": 21000, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 20902, + "end": 21000, + "name": "POP", + "source": 19 + }, + { + "begin": 20902, + "end": 21000, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21006, + "end": 21174, + "name": "tag", + "source": 19, + "value": "460" + }, + { + "begin": 21006, + "end": 21174, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21089, + "end": 21100, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 21123, + "end": 21129, + "name": "DUP3", + "source": 19 + }, + { + "begin": 21118, + "end": 21121, + "name": "DUP3", + "source": 19 + }, + { + "begin": 21111, + "end": 21130, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 21163, + "end": 21167, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 21158, + "end": 21161, + "name": "DUP3", + "source": 19 + }, + { + "begin": 21154, + "end": 21168, + "name": "ADD", + "source": 19 + }, + { + "begin": 21139, + "end": 21168, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 21139, + "end": 21168, + "name": "POP", + "source": 19 + }, + { + "begin": 21006, + "end": 21174, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 21006, + "end": 21174, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 21006, + "end": 21174, + "name": "POP", + "source": 19 + }, + { + "begin": 21006, + "end": 21174, + "name": "POP", + "source": 19 + }, + { + "begin": 21006, + "end": 21174, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21180, + "end": 21553, + "name": "tag", + "source": 19, + "value": "461" + }, + { + "begin": 21180, + "end": 21553, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21266, + "end": 21269, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 21294, + "end": 21332, + "name": "PUSH [tag]", + "source": 19, + "value": "697" + }, + { + "begin": 21326, + "end": 21331, + "name": "DUP3", + "source": 19 + }, + { + "begin": 21294, + "end": 21332, + "name": "PUSH [tag]", + "source": 19, + "value": "459" + }, + { + "begin": 21294, + "end": 21332, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21294, + "end": 21332, + "name": "tag", + "source": 19, + "value": "697" + }, + { + "begin": 21294, + "end": 21332, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21348, + "end": 21418, + "name": "PUSH [tag]", + "source": 19, + "value": "698" + }, + { + "begin": 21411, + "end": 21417, + "name": "DUP2", + "source": 19 + }, + { + "begin": 21406, + "end": 21409, + "name": "DUP6", + "source": 19 + }, + { + "begin": 21348, + "end": 21418, + "name": "PUSH [tag]", + "source": 19, + "value": "460" + }, + { + "begin": 21348, + "end": 21418, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21348, + "end": 21418, + "name": "tag", + "source": 19, + "value": "698" + }, + { + "begin": 21348, + "end": 21418, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21341, + "end": 21418, + "name": "SWAP4", + "source": 19 + }, + { + "begin": 21341, + "end": 21418, + "name": "POP", + "source": 19 + }, + { + "begin": 21427, + "end": 21492, + "name": "PUSH [tag]", + "source": 19, + "value": "699" + }, + { + "begin": 21485, + "end": 21491, + "name": "DUP2", + "source": 19 + }, + { + "begin": 21480, + "end": 21483, + "name": "DUP6", + "source": 19 + }, + { + "begin": 21473, + "end": 21477, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 21466, + "end": 21471, + "name": "DUP7", + "source": 19 + }, + { + "begin": 21462, + "end": 21478, + "name": "ADD", + "source": 19 + }, + { + "begin": 21427, + "end": 21492, + "name": "PUSH [tag]", + "source": 19, + "value": "413" + }, + { + "begin": 21427, + "end": 21492, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21427, + "end": 21492, + "name": "tag", + "source": 19, + "value": "699" + }, + { + "begin": 21427, + "end": 21492, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21517, + "end": 21546, + "name": "PUSH [tag]", + "source": 19, + "value": "700" + }, + { + "begin": 21539, + "end": 21545, + "name": "DUP2", + "source": 19 + }, + { + "begin": 21517, + "end": 21546, + "name": "PUSH [tag]", + "source": 19, + "value": "414" + }, + { + "begin": 21517, + "end": 21546, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21517, + "end": 21546, + "name": "tag", + "source": 19, + "value": "700" + }, + { + "begin": 21517, + "end": 21546, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21512, + "end": 21515, + "name": "DUP5", + "source": 19 + }, + { + "begin": 21508, + "end": 21547, + "name": "ADD", + "source": 19 + }, + { + "begin": 21501, + "end": 21547, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 21501, + "end": 21547, + "name": "POP", + "source": 19 + }, + { + "begin": 21270, + "end": 21553, + "name": "POP", + "source": 19 + }, + { + "begin": 21180, + "end": 21553, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 21180, + "end": 21553, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 21180, + "end": 21553, + "name": "POP", + "source": 19 + }, + { + "begin": 21180, + "end": 21553, + "name": "POP", + "source": 19 + }, + { + "begin": 21180, + "end": 21553, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "tag", + "source": 19, + "value": "270" + }, + { + "begin": 21559, + "end": 22199, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21754, + "end": 21758, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 21792, + "end": 21795, + "name": "PUSH", + "source": 19, + "value": "80" + }, + { + "begin": 21781, + "end": 21790, + "name": "DUP3", + "source": 19 + }, + { + "begin": 21777, + "end": 21796, + "name": "ADD", + "source": 19 + }, + { + "begin": 21769, + "end": 21796, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 21769, + "end": 21796, + "name": "POP", + "source": 19 + }, + { + "begin": 21806, + "end": 21877, + "name": "PUSH [tag]", + "source": 19, + "value": "702" + }, + { + "begin": 21874, + "end": 21875, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 21863, + "end": 21872, + "name": "DUP4", + "source": 19 + }, + { + "begin": 21859, + "end": 21876, + "name": "ADD", + "source": 19 + }, + { + "begin": 21850, + "end": 21856, + "name": "DUP8", + "source": 19 + }, + { + "begin": 21806, + "end": 21877, + "name": "PUSH [tag]", + "source": 19, + "value": "421" + }, + { + "begin": 21806, + "end": 21877, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21806, + "end": 21877, + "name": "tag", + "source": 19, + "value": "702" + }, + { + "begin": 21806, + "end": 21877, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21887, + "end": 21959, + "name": "PUSH [tag]", + "source": 19, + "value": "703" + }, + { + "begin": 21955, + "end": 21957, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 21944, + "end": 21953, + "name": "DUP4", + "source": 19 + }, + { + "begin": 21940, + "end": 21958, + "name": "ADD", + "source": 19 + }, + { + "begin": 21931, + "end": 21937, + "name": "DUP7", + "source": 19 + }, + { + "begin": 21887, + "end": 21959, + "name": "PUSH [tag]", + "source": 19, + "value": "421" + }, + { + "begin": 21887, + "end": 21959, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21887, + "end": 21959, + "name": "tag", + "source": 19, + "value": "703" + }, + { + "begin": 21887, + "end": 21959, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 21969, + "end": 22041, + "name": "PUSH [tag]", + "source": 19, + "value": "704" + }, + { + "begin": 22037, + "end": 22039, + "name": "PUSH", + "source": 19, + "value": "40" + }, + { + "begin": 22026, + "end": 22035, + "name": "DUP4", + "source": 19 + }, + { + "begin": 22022, + "end": 22040, + "name": "ADD", + "source": 19 + }, + { + "begin": 22013, + "end": 22019, + "name": "DUP6", + "source": 19 + }, + { + "begin": 21969, + "end": 22041, + "name": "PUSH [tag]", + "source": 19, + "value": "424" + }, + { + "begin": 21969, + "end": 22041, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 21969, + "end": 22041, + "name": "tag", + "source": 19, + "value": "704" + }, + { + "begin": 21969, + "end": 22041, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22088, + "end": 22097, + "name": "DUP2", + "source": 19 + }, + { + "begin": 22082, + "end": 22086, + "name": "DUP2", + "source": 19 + }, + { + "begin": 22078, + "end": 22098, + "name": "SUB", + "source": 19 + }, + { + "begin": 22073, + "end": 22075, + "name": "PUSH", + "source": 19, + "value": "60" + }, + { + "begin": 22062, + "end": 22071, + "name": "DUP4", + "source": 19 + }, + { + "begin": 22058, + "end": 22076, + "name": "ADD", + "source": 19 + }, + { + "begin": 22051, + "end": 22099, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 22116, + "end": 22192, + "name": "PUSH [tag]", + "source": 19, + "value": "705" + }, + { + "begin": 22187, + "end": 22191, + "name": "DUP2", + "source": 19 + }, + { + "begin": 22178, + "end": 22184, + "name": "DUP5", + "source": 19 + }, + { + "begin": 22116, + "end": 22192, + "name": "PUSH [tag]", + "source": 19, + "value": "461" + }, + { + "begin": 22116, + "end": 22192, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22116, + "end": 22192, + "name": "tag", + "source": 19, + "value": "705" + }, + { + "begin": 22116, + "end": 22192, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22108, + "end": 22192, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 22108, + "end": 22192, + "name": "POP", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "SWAP6", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "SWAP5", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "POP", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "POP", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "POP", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "POP", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "name": "POP", + "source": 19 + }, + { + "begin": 21559, + "end": 22199, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22205, + "end": 22346, + "name": "tag", + "source": 19, + "value": "462" + }, + { + "begin": 22205, + "end": 22346, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22261, + "end": 22266, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 22292, + "end": 22298, + "name": "DUP2", + "source": 19 + }, + { + "begin": 22286, + "end": 22299, + "name": "MLOAD", + "source": 19 + }, + { + "begin": 22277, + "end": 22299, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 22277, + "end": 22299, + "name": "POP", + "source": 19 + }, + { + "begin": 22308, + "end": 22340, + "name": "PUSH [tag]", + "source": 19, + "value": "707" + }, + { + "begin": 22334, + "end": 22339, + "name": "DUP2", + "source": 19 + }, + { + "begin": 22308, + "end": 22340, + "name": "PUSH [tag]", + "source": 19, + "value": "407" + }, + { + "begin": 22308, + "end": 22340, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22308, + "end": 22340, + "name": "tag", + "source": 19, + "value": "707" + }, + { + "begin": 22308, + "end": 22340, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22205, + "end": 22346, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 22205, + "end": 22346, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 22205, + "end": 22346, + "name": "POP", + "source": 19 + }, + { + "begin": 22205, + "end": 22346, + "name": "POP", + "source": 19 + }, + { + "begin": 22205, + "end": 22346, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22352, + "end": 22701, + "name": "tag", + "source": 19, + "value": "273" + }, + { + "begin": 22352, + "end": 22701, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22421, + "end": 22427, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 22470, + "end": 22472, + "name": "PUSH", + "source": 19, + "value": "20" + }, + { + "begin": 22458, + "end": 22467, + "name": "DUP3", + "source": 19 + }, + { + "begin": 22449, + "end": 22456, + "name": "DUP5", + "source": 19 + }, + { + "begin": 22445, + "end": 22468, + "name": "SUB", + "source": 19 + }, + { + "begin": 22441, + "end": 22473, + "name": "SLT", + "source": 19 + }, + { + "begin": 22438, + "end": 22557, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 22438, + "end": 22557, + "name": "PUSH [tag]", + "source": 19, + "value": "709" + }, + { + "begin": 22438, + "end": 22557, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 22476, + "end": 22555, + "name": "PUSH [tag]", + "source": 19, + "value": "710" + }, + { + "begin": 22476, + "end": 22555, + "name": "PUSH [tag]", + "source": 19, + "value": "404" + }, + { + "begin": 22476, + "end": 22555, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22476, + "end": 22555, + "name": "tag", + "source": 19, + "value": "710" + }, + { + "begin": 22476, + "end": 22555, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22438, + "end": 22557, + "name": "tag", + "source": 19, + "value": "709" + }, + { + "begin": 22438, + "end": 22557, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22596, + "end": 22597, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 22621, + "end": 22684, + "name": "PUSH [tag]", + "source": 19, + "value": "711" + }, + { + "begin": 22676, + "end": 22683, + "name": "DUP5", + "source": 19 + }, + { + "begin": 22667, + "end": 22673, + "name": "DUP3", + "source": 19 + }, + { + "begin": 22656, + "end": 22665, + "name": "DUP6", + "source": 19 + }, + { + "begin": 22652, + "end": 22674, + "name": "ADD", + "source": 19 + }, + { + "begin": 22621, + "end": 22684, + "name": "PUSH [tag]", + "source": 19, + "value": "462" + }, + { + "begin": 22621, + "end": 22684, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22621, + "end": 22684, + "name": "tag", + "source": 19, + "value": "711" + }, + { + "begin": 22621, + "end": 22684, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22611, + "end": 22684, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 22611, + "end": 22684, + "name": "POP", + "source": 19 + }, + { + "begin": 22567, + "end": 22694, + "name": "POP", + "source": 19 + }, + { + "begin": 22352, + "end": 22701, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 22352, + "end": 22701, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 22352, + "end": 22701, + "name": "POP", + "source": 19 + }, + { + "begin": 22352, + "end": 22701, + "name": "POP", + "source": 19 + }, + { + "begin": 22352, + "end": 22701, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22707, + "end": 22901, + "name": "tag", + "source": 19, + "value": "368" + }, + { + "begin": 22707, + "end": 22901, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22747, + "end": 22751, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 22767, + "end": 22787, + "name": "PUSH [tag]", + "source": 19, + "value": "713" + }, + { + "begin": 22785, + "end": 22786, + "name": "DUP3", + "source": 19 + }, + { + "begin": 22767, + "end": 22787, + "name": "PUSH [tag]", + "source": 19, + "value": "416" + }, + { + "begin": 22767, + "end": 22787, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22767, + "end": 22787, + "name": "tag", + "source": 19, + "value": "713" + }, + { + "begin": 22767, + "end": 22787, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22762, + "end": 22787, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 22762, + "end": 22787, + "name": "POP", + "source": 19 + }, + { + "begin": 22801, + "end": 22821, + "name": "PUSH [tag]", + "source": 19, + "value": "714" + }, + { + "begin": 22819, + "end": 22820, + "name": "DUP4", + "source": 19 + }, + { + "begin": 22801, + "end": 22821, + "name": "PUSH [tag]", + "source": 19, + "value": "416" + }, + { + "begin": 22801, + "end": 22821, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22801, + "end": 22821, + "name": "tag", + "source": 19, + "value": "714" + }, + { + "begin": 22801, + "end": 22821, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22796, + "end": 22821, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 22796, + "end": 22821, + "name": "POP", + "source": 19 + }, + { + "begin": 22845, + "end": 22846, + "name": "DUP3", + "source": 19 + }, + { + "begin": 22842, + "end": 22843, + "name": "DUP3", + "source": 19 + }, + { + "begin": 22838, + "end": 22847, + "name": "SUB", + "source": 19 + }, + { + "begin": 22830, + "end": 22847, + "name": "SWAP1", + "source": 19 + }, + { + "begin": 22830, + "end": 22847, + "name": "POP", + "source": 19 + }, + { + "begin": 22869, + "end": 22870, + "name": "DUP2", + "source": 19 + }, + { + "begin": 22863, + "end": 22867, + "name": "DUP2", + "source": 19 + }, + { + "begin": 22860, + "end": 22871, + "name": "GT", + "source": 19 + }, + { + "begin": 22857, + "end": 22894, + "name": "ISZERO", + "source": 19 + }, + { + "begin": 22857, + "end": 22894, + "name": "PUSH [tag]", + "source": 19, + "value": "715" + }, + { + "begin": 22857, + "end": 22894, + "name": "JUMPI", + "source": 19 + }, + { + "begin": 22874, + "end": 22892, + "name": "PUSH [tag]", + "source": 19, + "value": "716" + }, + { + "begin": 22874, + "end": 22892, + "name": "PUSH [tag]", + "source": 19, + "value": "439" + }, + { + "begin": 22874, + "end": 22892, + "jumpType": "[in]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22874, + "end": 22892, + "name": "tag", + "source": 19, + "value": "716" + }, + { + "begin": 22874, + "end": 22892, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22857, + "end": 22894, + "name": "tag", + "source": 19, + "value": "715" + }, + { + "begin": 22857, + "end": 22894, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22707, + "end": 22901, + "name": "SWAP3", + "source": 19 + }, + { + "begin": 22707, + "end": 22901, + "name": "SWAP2", + "source": 19 + }, + { + "begin": 22707, + "end": 22901, + "name": "POP", + "source": 19 + }, + { + "begin": 22707, + "end": 22901, + "name": "POP", + "source": 19 + }, + { + "begin": 22707, + "end": 22901, + "jumpType": "[out]", + "name": "JUMP", + "source": 19 + }, + { + "begin": 22907, + "end": 23087, + "name": "tag", + "source": 19, + "value": "377" + }, + { + "begin": 22907, + "end": 23087, + "name": "JUMPDEST", + "source": 19 + }, + { + "begin": 22955, + "end": 23032, + "name": "PUSH", + "source": 19, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 22952, + "end": 22953, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 22945, + "end": 23033, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 23052, + "end": 23056, + "name": "PUSH", + "source": 19, + "value": "31" + }, + { + "begin": 23049, + "end": 23050, + "name": "PUSH", + "source": 19, + "value": "4" + }, + { + "begin": 23042, + "end": 23057, + "name": "MSTORE", + "source": 19 + }, + { + "begin": 23076, + "end": 23080, + "name": "PUSH", + "source": 19, + "value": "24" + }, + { + "begin": 23073, + "end": 23074, + "name": "PUSH", + "source": 19, + "value": "0" + }, + { + "begin": 23066, + "end": 23081, + "name": "REVERT", + "source": 19 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts/access/Ownable.sol", + "@openzeppelin/contracts/interfaces/IERC165.sol", + "@openzeppelin/contracts/interfaces/IERC4906.sol", + "@openzeppelin/contracts/interfaces/IERC721.sol", + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol", + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "@openzeppelin/contracts/utils/Context.sol", + "@openzeppelin/contracts/utils/Strings.sol", + "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "@openzeppelin/contracts/utils/math/Math.sol", + "@openzeppelin/contracts/utils/math/SignedMath.sol", + "contracts/NFT.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "getCurrentTokenId()": "56189236", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "ownerOf(uint256)": "6352211e", + "renounceOwnership()": "715018a6", + "safeMint(address)": "40d097c3", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "setBaseURI(string)": "55f804b3", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenByIndex(uint256)": "4f6ccce7", + "tokenOfOwnerByIndex(address,uint256)": "2f745c59", + "tokenURI(uint256)": "c87b56dd", + "totalSupply()": "18160ddd", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ERC721EnumerableForbiddenBatchMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ERC721OutOfBoundsIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI_\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721EnumerableForbiddenBatchMint()\":[{\"details\":\"Batch mint is not allowed.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721OutOfBoundsIndex(address,uint256)\":[{\"details\":\"An `owner`'s token query was out of bounds for `index`. NOTE: The owner being `address(0)` indicates a global out of bounds index.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/NFT.sol\":\"CoreNFT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0x36797469c391ea5ba27408e6ca8adf0824ba6f3adea9c139be18bd6f63232c16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dcf8bb9f7c29d678de34a051b4a71cf27ae56464678696c6913cbbfc75d548a\",\"dweb:/ipfs/QmSfdgU9V2dXh9oajUxgF9hU1aPnpd1PEMtcchoANsCNmW\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/NFT.sol\":{\"keccak256\":\"0x462f5ae5a97c5a830edc7e9800d1f83e05ee958ffd06aac0ad48e2bd3e26956c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4b88a54e1cc32f0c29110b954c52464b08142bdc3e0ac1c45d1132c8de73661\",\"dweb:/ipfs/QmeRb1BAZ5iP6kFfiNBtvv5YpDmohuiDz5qR4zkpNXT1rr\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 349, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_name", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + }, + { + "astId": 351, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_symbol", + "offset": 0, + "slot": "1", + "type": "t_string_storage" + }, + { + "astId": 355, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_owners", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 359, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_balances", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_uint256)" + }, + { + "astId": 363, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_tokenApprovals", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_uint256,t_address)" + }, + { + "astId": 369, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_operatorApprovals", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" + }, + { + "astId": 1479, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_ownedTokens", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_address,t_mapping(t_uint256,t_uint256))" + }, + { + "astId": 1483, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_ownedTokensIndex", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_uint256,t_uint256)" + }, + { + "astId": 1486, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_allTokens", + "offset": 0, + "slot": "8", + "type": "t_array(t_uint256)dyn_storage" + }, + { + "astId": 1490, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_allTokensIndex", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_uint256)" + }, + { + "astId": 1872, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_tokenURIs", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_string_storage)" + }, + { + "astId": 8, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_owner", + "offset": 0, + "slot": "11", + "type": "t_address" + }, + { + "astId": 3530, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_nextTokenId", + "offset": 0, + "slot": "12", + "type": "t_uint256" + }, + { + "astId": 3532, + "contract": "contracts/NFT.sol:CoreNFT", + "label": "_baseURIExtended", + "offset": 0, + "slot": "13", + "type": "t_string_storage" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)dyn_storage": { + "base": "t_uint256", + "encoding": "dynamic_array", + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32", + "value": "t_mapping(t_address,t_bool)" + }, + "t_mapping(t_address,t_mapping(t_uint256,t_uint256))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(uint256 => uint256))", + "numberOfBytes": "32", + "value": "t_mapping(t_uint256,t_uint256)" + }, + "t_mapping(t_address,t_uint256)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_mapping(t_uint256,t_address)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => address)", + "numberOfBytes": "32", + "value": "t_address" + }, + "t_mapping(t_uint256,t_string_storage)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => string)", + "numberOfBytes": "32", + "value": "t_string_storage" + }, + "t_mapping(t_uint256,t_uint256)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 2060 + ], + "Ownable": [ + 147 + ] + }, + "id": 148, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 148, + "sourceUnit": 2061, + "src": "128:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "136:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5, + "name": "Context", + "nameLocations": [ + "692:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2060, + "src": "692:7:0" + }, + "id": 6, + "nodeType": "InheritanceSpecifier", + "src": "692:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4, + "nodeType": "StructuredDocumentation", + "src": "175:487:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 147, + "linearizedBaseContracts": [ + 147, + 2060 + ], + "name": "Ownable", + "nameLocation": "681:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "706:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 9, + "nodeType": "StructuredDocumentation", + "src": "735:85:0", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 13, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "858:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:0" + }, + "src": "825:50:0" + }, + { + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "881:82:0", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 18, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "994:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:0" + }, + "src": "968:41:0" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 24, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1042:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1073:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:0" + }, + "src": "1015:84:0" + }, + { + "body": { + "id": 49, + "nodeType": "Block", + "src": "1259:153:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1273:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:0", + "typeDescriptions": {} + } + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44, + "nodeType": "IfStatement", + "src": "1269:95:0", + "trueBody": { + "id": 43, + "nodeType": "Block", + "src": "1301:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:0", + "typeDescriptions": {} + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 36, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "1322:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 42, + "nodeType": "RevertStatement", + "src": "1315:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 46, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1392:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "1373:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 48, + "nodeType": "ExpressionStatement", + "src": "1373:32:0" + } + ] + }, + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "1105:115:0", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 50, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:0", + "nodeType": "VariableDeclaration", + "scope": 50, + "src": "1237:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:0" + }, + "scope": 147, + "src": "1225:187:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "1521:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 53, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "1531:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "1531:13:0" + }, + { + "id": 56, + "nodeType": "PlaceholderStatement", + "src": "1554:1:0" + } + ] + }, + "documentation": { + "id": 51, + "nodeType": "StructuredDocumentation", + "src": "1418:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 58, + "name": "onlyOwner", + "nameLocation": "1509:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:0" + }, + "src": "1500:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 66, + "nodeType": "Block", + "src": "1693:30:0", + "statements": [ + { + "expression": { + "id": 64, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1710:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 63, + "id": 65, + "nodeType": "Return", + "src": "1703:13:0" + } + ] + }, + "documentation": { + "id": 59, + "nodeType": "StructuredDocumentation", + "src": "1568:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 67, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:0" + }, + "returnParameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "1684:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:0" + }, + "scope": 147, + "src": "1638:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 83, + "nodeType": "Block", + "src": "1841:117:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 71, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1855:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 73, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "1866:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "IfStatement", + "src": "1851:101:0", + "trueBody": { + "id": 81, + "nodeType": "Block", + "src": "1880:72:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 77, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "1928:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 76, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "1901:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 80, + "nodeType": "RevertStatement", + "src": "1894:47:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 68, + "nodeType": "StructuredDocumentation", + "src": "1729:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 84, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:0" + }, + "scope": 147, + "src": "1796:162:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 97, + "nodeType": "Block", + "src": "2347:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 91, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:0", + "typeDescriptions": {} + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 90, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2357:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "2357:30:0" + } + ] + }, + "documentation": { + "id": 85, + "nodeType": "StructuredDocumentation", + "src": "1964:324:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 98, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 88, + "kind": "modifierInvocation", + "modifierName": { + "id": 87, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2337:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:0" + }, + "returnParameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:0" + }, + "scope": 147, + "src": "2293:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 125, + "nodeType": "Block", + "src": "2613:145:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 106, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2627:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:0", + "typeDescriptions": {} + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 120, + "nodeType": "IfStatement", + "src": "2623:91:0", + "trueBody": { + "id": 119, + "nodeType": "Block", + "src": "2651:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:0", + "typeDescriptions": {} + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 112, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "2672:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 118, + "nodeType": "RevertStatement", + "src": "2665:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 122, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2742:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 121, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2723:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "2723:28:0" + } + ] + }, + "documentation": { + "id": 99, + "nodeType": "StructuredDocumentation", + "src": "2400:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 104, + "kind": "modifierInvocation", + "modifierName": { + "id": 103, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2603:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:0", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "2570:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:0" + }, + "returnParameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:0" + }, + "scope": 147, + "src": "2543:215:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "2975:124:0", + "statements": [ + { + "assignments": [ + 133 + ], + "declarations": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:0", + "nodeType": "VariableDeclaration", + "scope": 145, + "src": "2985:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 135, + "initialValue": { + "id": 134, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3004:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:0" + }, + { + "expression": { + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 136, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 137, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3020:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 141, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "3073:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 142, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3083:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 140, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 144, + "nodeType": "EmitStatement", + "src": "3047:45:0" + } + ] + }, + "documentation": { + "id": 127, + "nodeType": "StructuredDocumentation", + "src": "2764:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 146, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "2940:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:0" + }, + "returnParameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:0" + }, + "scope": 147, + "src": "2912:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 148, + "src": "663:2438:0", + "usedErrors": [ + 13, + 18 + ], + "usedEvents": [ + 24 + ] + } + ], + "src": "102:3000:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/interfaces/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2351 + ] + }, + "id": 152, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 149, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../utils/introspection/IERC165.sol", + "id": 151, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 152, + "sourceUnit": 2352, + "src": "132:59:1", + "symbolAliases": [ + { + "foreign": { + "id": 150, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "140:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "106:86:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC4906.sol", + "exportedSymbols": { + "IERC165": [ + 2351 + ], + "IERC4906": [ + 175 + ], + "IERC721": [ + 1442 + ] + }, + "id": 176, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 153, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:2" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "file": "./IERC165.sol", + "id": 155, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 176, + "sourceUnit": 152, + "src": "133:38:2", + "symbolAliases": [ + { + "foreign": { + "id": 154, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "141:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC721.sol", + "file": "./IERC721.sol", + "id": 157, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 176, + "sourceUnit": 180, + "src": "172:38:2", + "symbolAliases": [ + { + "foreign": { + "id": 156, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "180:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 159, + "name": "IERC165", + "nameLocations": [ + "279:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2351, + "src": "279:7:2" + }, + "id": 160, + "nodeType": "InheritanceSpecifier", + "src": "279:7:2" + }, + { + "baseName": { + "id": 161, + "name": "IERC721", + "nameLocations": [ + "288:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "288:7:2" + }, + "id": 162, + "nodeType": "InheritanceSpecifier", + "src": "288:7:2" + } + ], + "canonicalName": "IERC4906", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 158, + "nodeType": "StructuredDocumentation", + "src": "212:45:2", + "text": "@title EIP-721 Metadata Update Extension" + }, + "fullyImplemented": false, + "id": 175, + "linearizedBaseContracts": [ + 175, + 1442, + 2351 + ], + "name": "IERC4906", + "nameLocation": "267:8:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 163, + "nodeType": "StructuredDocumentation", + "src": "302:201:2", + "text": "@dev This event emits when the metadata of a token is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFT." + }, + "eventSelector": "f8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7", + "id": 167, + "name": "MetadataUpdate", + "nameLocation": "514:14:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 165, + "indexed": false, + "mutability": "mutable", + "name": "_tokenId", + "nameLocation": "537:8:2", + "nodeType": "VariableDeclaration", + "scope": 167, + "src": "529:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "529:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "528:18:2" + }, + "src": "508:39:2" + }, + { + "anonymous": false, + "documentation": { + "id": 168, + "nodeType": "StructuredDocumentation", + "src": "553:212:2", + "text": "@dev This event emits when the metadata of a range of tokens is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFTs." + }, + "eventSelector": "6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c", + "id": 174, + "name": "BatchMetadataUpdate", + "nameLocation": "776:19:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "indexed": false, + "mutability": "mutable", + "name": "_fromTokenId", + "nameLocation": "804:12:2", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "796:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "796:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "indexed": false, + "mutability": "mutable", + "name": "_toTokenId", + "nameLocation": "826:10:2", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "818:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "818:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "795:42:2" + }, + "src": "770:68:2" + } + ], + "scope": 176, + "src": "257:583:2", + "usedErrors": [], + "usedEvents": [ + 167, + 174, + 1341, + 1350, + 1359 + ] + } + ], + "src": "107:734:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/interfaces/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC721.sol", + "exportedSymbols": { + "IERC721": [ + 1442 + ] + }, + "id": 180, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 177, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../token/ERC721/IERC721.sol", + "id": 179, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 180, + "sourceUnit": 1443, + "src": "132:52:3", + "symbolAliases": [ + { + "foreign": { + "id": 178, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "140:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "106:79:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 316 + ], + "IERC20Errors": [ + 221 + ], + "IERC721Errors": [ + 269 + ] + }, + "id": 317, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 181, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 182, + "nodeType": "StructuredDocumentation", + "src": "138:139:4", + "text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens." + }, + "fullyImplemented": true, + "id": 221, + "linearizedBaseContracts": [ + 221 + ], + "name": "IERC20Errors", + "nameLocation": "288:12:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 183, + "nodeType": "StructuredDocumentation", + "src": "307:309:4", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 191, + "name": "ERC20InsufficientBalance", + "nameLocation": "627:24:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "sender", + "nameLocation": "660:6:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "652:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 187, + "mutability": "mutable", + "name": "balance", + "nameLocation": "676:7:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "668:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "needed", + "nameLocation": "693:6:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "685:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "651:49:4" + }, + "src": "621:80:4" + }, + { + "documentation": { + "id": 192, + "nodeType": "StructuredDocumentation", + "src": "707:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 196, + "name": "ERC20InvalidSender", + "nameLocation": "870:18:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "sender", + "nameLocation": "897:6:4", + "nodeType": "VariableDeclaration", + "scope": 196, + "src": "889:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:4" + }, + "src": "864:41:4" + }, + { + "documentation": { + "id": 197, + "nodeType": "StructuredDocumentation", + "src": "911:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 201, + "name": "ERC20InvalidReceiver", + "nameLocation": "1081:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 199, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1110:8:4", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "1102:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1101:18:4" + }, + "src": "1075:45:4" + }, + { + "documentation": { + "id": 202, + "nodeType": "StructuredDocumentation", + "src": "1126:345:4", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 210, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1482:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1517:7:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1509:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 203, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1534:9:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1526:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1526:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1553:6:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1545:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1508:52:4" + }, + "src": "1476:85:4" + }, + { + "documentation": { + "id": 211, + "nodeType": "StructuredDocumentation", + "src": "1567:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 215, + "name": "ERC20InvalidApprover", + "nameLocation": "1752:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 213, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1781:8:4", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "1773:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1773:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1772:18:4" + }, + "src": "1746:45:4" + }, + { + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "1797:195:4", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 220, + "name": "ERC20InvalidSpender", + "nameLocation": "2003:19:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2031:7:4", + "nodeType": "VariableDeclaration", + "scope": 220, + "src": "2023:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2023:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2022:17:4" + }, + "src": "1997:43:4" + } + ], + "scope": 317, + "src": "278:1764:4", + "usedErrors": [ + 191, + 196, + 201, + 210, + 215, + 220 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 222, + "nodeType": "StructuredDocumentation", + "src": "2044:141:4", + "text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens." + }, + "fullyImplemented": true, + "id": 269, + "linearizedBaseContracts": [ + 269 + ], + "name": "IERC721Errors", + "nameLocation": "2196:13:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 223, + "nodeType": "StructuredDocumentation", + "src": "2216:219:4", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 227, + "name": "ERC721InvalidOwner", + "nameLocation": "2446:18:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2473:5:4", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2465:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2465:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2464:15:4" + }, + "src": "2440:40:4" + }, + { + "documentation": { + "id": 228, + "nodeType": "StructuredDocumentation", + "src": "2486:132:4", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 232, + "name": "ERC721NonexistentToken", + "nameLocation": "2629:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2660:7:4", + "nodeType": "VariableDeclaration", + "scope": 232, + "src": "2652:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2651:17:4" + }, + "src": "2623:46:4" + }, + { + "documentation": { + "id": 233, + "nodeType": "StructuredDocumentation", + "src": "2675:289:4", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 241, + "name": "ERC721IncorrectOwner", + "nameLocation": "2975:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3004:6:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "2996:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3020:7:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3012:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3037:5:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3029:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2995:48:4" + }, + "src": "2969:75:4" + }, + { + "documentation": { + "id": 242, + "nodeType": "StructuredDocumentation", + "src": "3050:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 246, + "name": "ERC721InvalidSender", + "nameLocation": "3213:19:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 244, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3241:6:4", + "nodeType": "VariableDeclaration", + "scope": 246, + "src": "3233:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:16:4" + }, + "src": "3207:42:4" + }, + { + "documentation": { + "id": 247, + "nodeType": "StructuredDocumentation", + "src": "3255:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 251, + "name": "ERC721InvalidReceiver", + "nameLocation": "3425:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3455:8:4", + "nodeType": "VariableDeclaration", + "scope": 251, + "src": "3447:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3446:18:4" + }, + "src": "3419:46:4" + }, + { + "documentation": { + "id": 252, + "nodeType": "StructuredDocumentation", + "src": "3471:247:4", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 258, + "name": "ERC721InsufficientApproval", + "nameLocation": "3729:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 254, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3764:8:4", + "nodeType": "VariableDeclaration", + "scope": 258, + "src": "3756:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3756:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3782:7:4", + "nodeType": "VariableDeclaration", + "scope": 258, + "src": "3774:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3774:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3755:35:4" + }, + "src": "3723:68:4" + }, + { + "documentation": { + "id": 259, + "nodeType": "StructuredDocumentation", + "src": "3797:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 263, + "name": "ERC721InvalidApprover", + "nameLocation": "3982:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 261, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4012:8:4", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "4004:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4004:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:18:4" + }, + "src": "3976:46:4" + }, + { + "documentation": { + "id": 264, + "nodeType": "StructuredDocumentation", + "src": "4028:197:4", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 268, + "name": "ERC721InvalidOperator", + "nameLocation": "4236:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4266:8:4", + "nodeType": "VariableDeclaration", + "scope": 268, + "src": "4258:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4258:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4257:18:4" + }, + "src": "4230:46:4" + } + ], + "scope": 317, + "src": "2186:2092:4", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 270, + "nodeType": "StructuredDocumentation", + "src": "4280:143:4", + "text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens." + }, + "fullyImplemented": true, + "id": 316, + "linearizedBaseContracts": [ + 316 + ], + "name": "IERC1155Errors", + "nameLocation": "4434:14:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 271, + "nodeType": "StructuredDocumentation", + "src": "4455:361:4", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 281, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4827:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4862:6:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4854:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4854:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 275, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4878:7:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4870:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4870:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 277, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4895:6:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4887:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 279, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4911:7:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4903:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4903:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4853:66:4" + }, + "src": "4821:99:4" + }, + { + "documentation": { + "id": 282, + "nodeType": "StructuredDocumentation", + "src": "4926:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 286, + "name": "ERC1155InvalidSender", + "nameLocation": "5089:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 284, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5118:6:4", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "5110:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 283, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5110:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5109:16:4" + }, + "src": "5083:43:4" + }, + { + "documentation": { + "id": 287, + "nodeType": "StructuredDocumentation", + "src": "5132:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 291, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5302:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5333:8:4", + "nodeType": "VariableDeclaration", + "scope": 291, + "src": "5325:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5325:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5324:18:4" + }, + "src": "5296:47:4" + }, + { + "documentation": { + "id": 292, + "nodeType": "StructuredDocumentation", + "src": "5349:256:4", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 298, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5616:28:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 294, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5653:8:4", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "5645:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5645:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 296, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5671:5:4", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "5663:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5663:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5644:33:4" + }, + "src": "5610:68:4" + }, + { + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "5684:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 303, + "name": "ERC1155InvalidApprover", + "nameLocation": "5869:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5900:8:4", + "nodeType": "VariableDeclaration", + "scope": 303, + "src": "5892:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5892:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5891:18:4" + }, + "src": "5863:47:4" + }, + { + "documentation": { + "id": 304, + "nodeType": "StructuredDocumentation", + "src": "5916:197:4", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 308, + "name": "ERC1155InvalidOperator", + "nameLocation": "6124:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 306, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6155:8:4", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6147:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6147:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6146:18:4" + }, + "src": "6118:47:4" + }, + { + "documentation": { + "id": 309, + "nodeType": "StructuredDocumentation", + "src": "6171:280:4", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 315, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6462:25:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6496:9:4", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "6488:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6488:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6515:12:4", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "6507:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6507:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6487:41:4" + }, + "src": "6456:73:4" + } + ], + "scope": 317, + "src": "4424:2107:4", + "usedErrors": [ + 281, + 286, + 291, + 298, + 303, + 308, + 315 + ], + "usedEvents": [] + } + ], + "src": "112:6420:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "exportedSymbols": { + "Context": [ + 2060 + ], + "ERC165": [ + 2339 + ], + "ERC721": [ + 1325 + ], + "IERC165": [ + 2351 + ], + "IERC721": [ + 1442 + ], + "IERC721Errors": [ + 269 + ], + "IERC721Metadata": [ + 2030 + ], + "IERC721Receiver": [ + 1460 + ], + "Strings": [ + 2315 + ] + }, + "id": 1326, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 318, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "./IERC721.sol", + "id": 320, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1443, + "src": "133:38:5", + "symbolAliases": [ + { + "foreign": { + "id": 319, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "141:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "./IERC721Receiver.sol", + "id": 322, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1461, + "src": "172:54:5", + "symbolAliases": [ + { + "foreign": { + "id": 321, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "180:15:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "file": "./extensions/IERC721Metadata.sol", + "id": 324, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 2031, + "src": "227:65:5", + "symbolAliases": [ + { + "foreign": { + "id": 323, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "235:15:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 326, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 2061, + "src": "293:48:5", + "symbolAliases": [ + { + "foreign": { + "id": 325, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "301:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../utils/Strings.sol", + "id": 328, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 2316, + "src": "342:48:5", + "symbolAliases": [ + { + "foreign": { + "id": 327, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2315, + "src": "350:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../utils/introspection/ERC165.sol", + "id": 331, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 2340, + "src": "391:69:5", + "symbolAliases": [ + { + "foreign": { + "id": 329, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "399:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 330, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "408:6:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 333, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 317, + "src": "461:66:5", + "symbolAliases": [ + { + "foreign": { + "id": 332, + "name": "IERC721Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "469:13:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 335, + "name": "Context", + "nameLocations": [ + "804:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2060, + "src": "804:7:5" + }, + "id": 336, + "nodeType": "InheritanceSpecifier", + "src": "804:7:5" + }, + { + "baseName": { + "id": 337, + "name": "ERC165", + "nameLocations": [ + "813:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2339, + "src": "813:6:5" + }, + "id": 338, + "nodeType": "InheritanceSpecifier", + "src": "813:6:5" + }, + { + "baseName": { + "id": 339, + "name": "IERC721", + "nameLocations": [ + "821:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "821:7:5" + }, + "id": 340, + "nodeType": "InheritanceSpecifier", + "src": "821:7:5" + }, + { + "baseName": { + "id": 341, + "name": "IERC721Metadata", + "nameLocations": [ + "830:15:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2030, + "src": "830:15:5" + }, + "id": 342, + "nodeType": "InheritanceSpecifier", + "src": "830:15:5" + }, + { + "baseName": { + "id": 343, + "name": "IERC721Errors", + "nameLocations": [ + "847:13:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 269, + "src": "847:13:5" + }, + "id": 344, + "nodeType": "InheritanceSpecifier", + "src": "847:13:5" + } + ], + "canonicalName": "ERC721", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 334, + "nodeType": "StructuredDocumentation", + "src": "529:246:5", + "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." + }, + "fullyImplemented": true, + "id": 1325, + "linearizedBaseContracts": [ + 1325, + 269, + 2030, + 1442, + 2339, + 2351, + 2060 + ], + "name": "ERC721", + "nameLocation": "794:6:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 347, + "libraryName": { + "id": 345, + "name": "Strings", + "nameLocations": [ + "873:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2315, + "src": "873:7:5" + }, + "nodeType": "UsingForDirective", + "src": "867:26:5", + "typeName": { + "id": 346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "885:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "_name", + "nameLocation": "932:5:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "917:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 348, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "917:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "979:7:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "964:22:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 350, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "964:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 355, + "mutability": "mutable", + "name": "_owners", + "nameLocation": "1037:7:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "993:51:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 354, + "keyName": "tokenId", + "keyNameLocation": "1009:7:5", + "keyType": { + "id": 352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1001:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "993:35:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1020:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 359, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1093:9:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1051:51:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 358, + "keyName": "owner", + "keyNameLocation": "1067:5:5", + "keyType": { + "id": 356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1059:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1051:33:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 363, + "mutability": "mutable", + "name": "_tokenApprovals", + "nameLocation": "1153:15:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1109:59:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 362, + "keyName": "tokenId", + "keyNameLocation": "1125:7:5", + "keyType": { + "id": 360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1109:35:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1136:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1243:18:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1175:86:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 368, + "keyName": "owner", + "keyNameLocation": "1191:5:5", + "keyType": { + "id": 364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1183:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1175:59:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 367, + "keyName": "operator", + "keyNameLocation": "1216:8:5", + "keyType": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1208:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1200:33:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 366, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1228:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 385, + "nodeType": "Block", + "src": "1437:57:5", + "statements": [ + { + "expression": { + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 377, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "1447:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 378, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 372, + "src": "1455:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1447:13:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 380, + "nodeType": "ExpressionStatement", + "src": "1447:13:5" + }, + { + "expression": { + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 381, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "1470:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 382, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 374, + "src": "1480:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1470:17:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 384, + "nodeType": "ExpressionStatement", + "src": "1470:17:5" + } + ] + }, + "documentation": { + "id": 370, + "nodeType": "StructuredDocumentation", + "src": "1268:108:5", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 386, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1407:5:5", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1393:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 371, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1393:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1428:7:5", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1414:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 373, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1414:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1392:44:5" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "1437:0:5" + }, + "scope": 1325, + "src": "1381:113:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2338, + 2350 + ], + "body": { + "id": 416, + "nodeType": "Block", + "src": "1669:192:5", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 397, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1698:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 399, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "1718:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$1442_$", + "typeString": "type(contract IERC721)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721_$1442_$", + "typeString": "type(contract IERC721)" + } + ], + "id": 398, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "1713:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1713:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$1442", + "typeString": "type(contract IERC721)" + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1727:11:5", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1713:25:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1698:40:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 403, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1754:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 405, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "1774:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2030_$", + "typeString": "type(contract IERC721Metadata)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2030_$", + "typeString": "type(contract IERC721Metadata)" + } + ], + "id": 404, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "1769:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1769:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$2030", + "typeString": "type(contract IERC721Metadata)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1791:11:5", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1769:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1754:48:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1698:104:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 412, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1842:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 410, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "1818:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721_$1325_$", + "typeString": "type(contract super ERC721)" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1824:17:5", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "1818:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1818:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1698:156:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 396, + "id": 415, + "nodeType": "Return", + "src": "1679:175:5" + } + ] + }, + "documentation": { + "id": 387, + "nodeType": "StructuredDocumentation", + "src": "1500:56:5", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 417, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1570:17:5", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 393, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 391, + "name": "ERC165", + "nameLocations": [ + "1637:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2339, + "src": "1637:6:5" + }, + { + "id": 392, + "name": "IERC165", + "nameLocations": [ + "1645:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2351, + "src": "1645:7:5" + } + ], + "src": "1628:25:5" + }, + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1595:11:5", + "nodeType": "VariableDeclaration", + "scope": 417, + "src": "1588:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 388, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1588:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1587:20:5" + }, + "returnParameters": { + "id": 396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 395, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 417, + "src": "1663:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1663:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1662:6:5" + }, + "scope": 1325, + "src": "1561:300:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1367 + ], + "body": { + "id": 444, + "nodeType": "Block", + "src": "1992:136:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 425, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2006:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2023:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2015:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2015:7:5", + "typeDescriptions": {} + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2015:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2006:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 439, + "nodeType": "IfStatement", + "src": "2002:87:5", + "trueBody": { + "id": 438, + "nodeType": "Block", + "src": "2027:62:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2075:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2067:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:5", + "typeDescriptions": {} + } + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2067:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 431, + "name": "ERC721InvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "2048:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2048:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 437, + "nodeType": "RevertStatement", + "src": "2041:37:5" + } + ] + } + }, + { + "expression": { + "baseExpression": { + "id": 440, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "2105:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 442, + "indexExpression": { + "id": 441, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2115:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2105:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 424, + "id": 443, + "nodeType": "Return", + "src": "2098:23:5" + } + ] + }, + "documentation": { + "id": 418, + "nodeType": "StructuredDocumentation", + "src": "1867:48:5", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 445, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1929:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1947:5:5", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "1939:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1939:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1938:15:5" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "1983:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1983:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1982:9:5" + }, + "scope": 1325, + "src": "1920:208:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1375 + ], + "body": { + "id": 457, + "nodeType": "Block", + "src": "2257:46:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 454, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "2288:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 453, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "2274:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2274:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 452, + "id": 456, + "nodeType": "Return", + "src": "2267:29:5" + } + ] + }, + "documentation": { + "id": 446, + "nodeType": "StructuredDocumentation", + "src": "2134:46:5", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "2194:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2210:7:5", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "2202:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2202:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2201:17:5" + }, + "returnParameters": { + "id": 452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 451, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "2248:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2248:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2247:9:5" + }, + "scope": 1325, + "src": "2185:118:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2015 + ], + "body": { + "id": 466, + "nodeType": "Block", + "src": "2425:29:5", + "statements": [ + { + "expression": { + "id": 464, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "2442:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 463, + "id": 465, + "nodeType": "Return", + "src": "2435:12:5" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "2309:51:5", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 467, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2374:4:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "2378:2:5" + }, + "returnParameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 467, + "src": "2410:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 461, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2410:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2409:15:5" + }, + "scope": 1325, + "src": "2365:89:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2021 + ], + "body": { + "id": 475, + "nodeType": "Block", + "src": "2580:31:5", + "statements": [ + { + "expression": { + "id": 473, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "2597:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 472, + "id": 474, + "nodeType": "Return", + "src": "2590:14:5" + } + ] + }, + "documentation": { + "id": 468, + "nodeType": "StructuredDocumentation", + "src": "2460:53:5", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2527:6:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [], + "src": "2533:2:5" + }, + "returnParameters": { + "id": 472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 471, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "2565:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2565:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2564:15:5" + }, + "scope": 1325, + "src": "2518:93:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2029 + ], + "body": { + "id": 511, + "nodeType": "Block", + "src": "2756:176:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 485, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "2780:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 484, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "2766:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2766:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 487, + "nodeType": "ExpressionStatement", + "src": "2766:22:5" + }, + { + "assignments": [ + 489 + ], + "declarations": [ + { + "constant": false, + "id": 489, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "2813:7:5", + "nodeType": "VariableDeclaration", + "scope": 511, + "src": "2799:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 488, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2799:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 492, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 490, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "2823:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2823:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2799:34:5" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 495, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "2856:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2850:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 493, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2850:5:5", + "typeDescriptions": {} + } + }, + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2850:14:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2865:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2850:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2874:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2850:25:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2923:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2850:75:5", + "trueExpression": { + "arguments": [ + { + "id": 503, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "2892:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 504, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "2901:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2909:8:5", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "2901:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2901:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2878:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 500, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2878:6:5", + "typeDescriptions": {} + } + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2885:6:5", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2878:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2878:42:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 483, + "id": 510, + "nodeType": "Return", + "src": "2843:82:5" + } + ] + }, + "documentation": { + "id": 477, + "nodeType": "StructuredDocumentation", + "src": "2617:55:5", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "2686:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 479, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2703:7:5", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "2695:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2695:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2694:17:5" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "2741:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 481, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2741:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2740:15:5" + }, + "scope": 1325, + "src": "2677:255:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 520, + "nodeType": "Block", + "src": "3240:26:5", + "statements": [ + { + "expression": { + "hexValue": "", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3257:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 517, + "id": 519, + "nodeType": "Return", + "src": "3250:9:5" + } + ] + }, + "documentation": { + "id": 513, + "nodeType": "StructuredDocumentation", + "src": "2938:231:5", + "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts." + }, + "id": 521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "3183:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "3191:2:5" + }, + "returnParameters": { + "id": 517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 521, + "src": "3225:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 515, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3225:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3224:15:5" + }, + "scope": 1325, + "src": "3174:92:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1415 + ], + "body": { + "id": 536, + "nodeType": "Block", + "src": "3384:52:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 530, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3403:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 531, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 526, + "src": "3407:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 532, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "3416:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 529, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1128, + "src": "3394:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3394:35:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "3394:35:5" + } + ] + }, + "documentation": { + "id": 522, + "nodeType": "StructuredDocumentation", + "src": "3272:46:5", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 537, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "3332:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 524, + "mutability": "mutable", + "name": "to", + "nameLocation": "3348:2:5", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "3340:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3340:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 526, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3360:7:5", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "3352:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3339:29:5" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [], + "src": "3384:0:5" + }, + "scope": 1325, + "src": "3323:113:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1431 + ], + "body": { + "id": 553, + "nodeType": "Block", + "src": "3573:78:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 546, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3597:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 545, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "3583:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3583:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "3583:22:5" + }, + { + "expression": { + "arguments": [ + { + "id": 550, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3636:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 549, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "3623:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3623:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 544, + "id": 552, + "nodeType": "Return", + "src": "3616:28:5" + } + ] + }, + "documentation": { + "id": 538, + "nodeType": "StructuredDocumentation", + "src": "3442:50:5", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 554, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "3506:11:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 540, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3526:7:5", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "3518:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3518:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3517:17:5" + }, + "returnParameters": { + "id": 544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 543, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "3564:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3564:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3563:9:5" + }, + "scope": 1325, + "src": "3497:154:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1423 + ], + "body": { + "id": 569, + "nodeType": "Block", + "src": "3793:69:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 563, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "3822:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3822:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 565, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "3836:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 566, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "3846:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 562, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1231, + "src": "3803:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3803:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 568, + "nodeType": "ExpressionStatement", + "src": "3803:52:5" + } + ] + }, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "3657:56:5", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 570, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "3727:17:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3753:8:5", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3745:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3745:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "mutability": "mutable", + "name": "approved", + "nameLocation": "3768:8:5", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3763:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 558, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3763:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3744:33:5" + }, + "returnParameters": { + "id": 561, + "nodeType": "ParameterList", + "parameters": [], + "src": "3793:0:5" + }, + "scope": 1325, + "src": "3718:144:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1441 + ], + "body": { + "id": 586, + "nodeType": "Block", + "src": "4022:59:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 580, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "4039:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 582, + "indexExpression": { + "id": 581, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "4058:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:25:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 584, + "indexExpression": { + "id": 583, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "4065:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 579, + "id": 585, + "nodeType": "Return", + "src": "4032:42:5" + } + ] + }, + "documentation": { + "id": 571, + "nodeType": "StructuredDocumentation", + "src": "3868:55:5", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 587, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "3937:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3962:5:5", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "3954:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3954:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3977:8:5", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "3969:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3969:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3953:33:5" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "4016:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 577, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4016:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4015:6:5" + }, + "scope": 1325, + "src": "3928:153:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1407 + ], + "body": { + "id": 632, + "nodeType": "Block", + "src": "4223:498:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 597, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4237:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4251:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4243:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4243:7:5", + "typeDescriptions": {} + } + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4243:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4237:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 611, + "nodeType": "IfStatement", + "src": "4233:87:5", + "trueBody": { + "id": 610, + "nodeType": "Block", + "src": "4255:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4306:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4298:7:5", + "typeDescriptions": {} + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4298:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 603, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "4276:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4276:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 609, + "nodeType": "RevertStatement", + "src": "4269:40:5" + } + ] + } + }, + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "4546:13:5", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "4538:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4538:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 620, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4570:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "4574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 617, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "4583:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "4562:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4562:34:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4538:58:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 621, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "4610:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 622, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "4627:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4610:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 631, + "nodeType": "IfStatement", + "src": "4606:109:5", + "trueBody": { + "id": 630, + "nodeType": "Block", + "src": "4633:82:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 625, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "4675:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 626, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "4681:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 627, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "4690:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 624, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "4654:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$_t_error_$", + "typeString": "function (address,uint256,address) pure returns (error)" + } + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4654:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 629, + "nodeType": "RevertStatement", + "src": "4647:57:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 588, + "nodeType": "StructuredDocumentation", + "src": "4087:51:5", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 633, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4152:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "from", + "nameLocation": "4173:4:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4165:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4165:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "mutability": "mutable", + "name": "to", + "nameLocation": "4187:2:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4179:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4179:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4199:7:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4191:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4191:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4164:43:5" + }, + "returnParameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [], + "src": "4223:0:5" + }, + "scope": 1325, + "src": "4143:578:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1397 + ], + "body": { + "id": 650, + "nodeType": "Block", + "src": "4863:56:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 644, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "4890:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 645, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "4896:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 646, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "4900:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4909:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 643, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 651, + 677 + ], + "referencedDeclaration": 677, + "src": "4873:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4873:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 649, + "nodeType": "ExpressionStatement", + "src": "4873:39:5" + } + ] + }, + "documentation": { + "id": 634, + "nodeType": "StructuredDocumentation", + "src": "4727:55:5", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 651, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "4796:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 636, + "mutability": "mutable", + "name": "from", + "nameLocation": "4821:4:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4813:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4813:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 638, + "mutability": "mutable", + "name": "to", + "nameLocation": "4835:2:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4827:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4827:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4847:7:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4839:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4839:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4812:43:5" + }, + "returnParameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [], + "src": "4863:0:5" + }, + "scope": 1325, + "src": "4787:132:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1387 + ], + "body": { + "id": 676, + "nodeType": "Block", + "src": "5088:105:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 664, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "5111:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 665, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "5117:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 666, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "5121:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 663, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "5098:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5098:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 668, + "nodeType": "ExpressionStatement", + "src": "5098:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 670, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "5162:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 671, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "5168:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 672, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "5172:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 673, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "5181:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 669, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "5139:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5139:47:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 675, + "nodeType": "ExpressionStatement", + "src": "5139:47:5" + } + ] + }, + "documentation": { + "id": 652, + "nodeType": "StructuredDocumentation", + "src": "4925:55:5", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 677, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "4994:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 654, + "mutability": "mutable", + "name": "from", + "nameLocation": "5019:4:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5011:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5011:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 656, + "mutability": "mutable", + "name": "to", + "nameLocation": "5033:2:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5025:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 655, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5025:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5045:7:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5037:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5037:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "mutability": "mutable", + "name": "data", + "nameLocation": "5067:4:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5054:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 659, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5054:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5010:62:5" + }, + "returnParameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [], + "src": "5088:0:5" + }, + "scope": 1325, + "src": "4985:208:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 689, + "nodeType": "Block", + "src": "5782:40:5", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 685, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "5799:7:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 687, + "indexExpression": { + "id": 686, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "5807:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5799:16:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 684, + "id": 688, + "nodeType": "Return", + "src": "5792:23:5" + } + ] + }, + "documentation": { + "id": 678, + "nodeType": "StructuredDocumentation", + "src": "5199:503:5", + "text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`." + }, + "id": 690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ownerOf", + "nameLocation": "5716:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 680, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5733:7:5", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "5725:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5725:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5724:17:5" + }, + "returnParameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "5773:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5773:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5772:9:5" + }, + "scope": 1325, + "src": "5707:115:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 702, + "nodeType": "Block", + "src": "6017:48:5", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 698, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "6034:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 700, + "indexExpression": { + "id": 699, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "6050:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6034:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 697, + "id": 701, + "nodeType": "Return", + "src": "6027:31:5" + } + ] + }, + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "5828:105:5", + "text": " @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted." + }, + "id": 703, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getApproved", + "nameLocation": "5947:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5968:7:5", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "5960:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5960:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5959:17:5" + }, + "returnParameters": { + "id": 697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 696, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "6008:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 695, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6008:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6007:9:5" + }, + "scope": 1325, + "src": "5938:127:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 738, + "nodeType": "Block", + "src": "6485:163:5", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 715, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6514:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6533:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6525:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6525:7:5", + "typeDescriptions": {} + } + }, + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6525:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6514:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 721, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "6552:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 722, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6561:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6552:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 725, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "6589:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 726, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6596:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 724, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "6572:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6572:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6552:52:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 730, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "6621:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 729, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "6608:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6608:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 732, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6633:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6608:32:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6552:88:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 735, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6551:90:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6514:127:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 714, + "id": 737, + "nodeType": "Return", + "src": "6495:146:5" + } + ] + }, + "documentation": { + "id": 704, + "nodeType": "StructuredDocumentation", + "src": "6071:300:5", + "text": " @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 739, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isAuthorized", + "nameLocation": "6385:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6407:5:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6399:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 705, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6399:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "spender", + "nameLocation": "6422:7:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6414:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6414:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6439:7:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6431:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6431:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6398:49:5" + }, + "returnParameters": { + "id": 714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 713, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6479:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6479:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6478:6:5" + }, + "scope": 1325, + "src": "6376:272:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "7179:271:5", + "statements": [ + { + "condition": { + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7193:39:5", + "subExpression": { + "arguments": [ + { + "id": 750, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 742, + "src": "7208:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 751, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "7215:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 752, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7224:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 749, + "name": "_isAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 739, + "src": "7194:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) view returns (bool)" + } + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7194:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 774, + "nodeType": "IfStatement", + "src": "7189:255:5", + "trueBody": { + "id": 773, + "nodeType": "Block", + "src": "7234:210:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 755, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 742, + "src": "7252:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7269:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7261:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7261:7:5", + "typeDescriptions": {} + } + }, + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7261:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7252:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 771, + "nodeType": "Block", + "src": "7350:84:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "7402:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 768, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7411:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 766, + "name": "ERC721InsufficientApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "7375:26:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7375:44:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 770, + "nodeType": "RevertStatement", + "src": "7368:51:5" + } + ] + }, + "id": 772, + "nodeType": "IfStatement", + "src": "7248:186:5", + "trueBody": { + "id": 765, + "nodeType": "Block", + "src": "7273:71:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 762, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7321:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 761, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "7298:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7298:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 764, + "nodeType": "RevertStatement", + "src": "7291:38:5" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 740, + "nodeType": "StructuredDocumentation", + "src": "6654:423:5", + "text": " @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n the `spender` for the specific `tokenId`.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkAuthorized", + "nameLocation": "7091:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "owner", + "nameLocation": "7116:5:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7108:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7108:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 744, + "mutability": "mutable", + "name": "spender", + "nameLocation": "7131:7:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7123:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7148:7:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7140:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7140:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7107:49:5" + }, + "returnParameters": { + "id": 748, + "nodeType": "ParameterList", + "parameters": [], + "src": "7179:0:5" + }, + "scope": 1325, + "src": "7082:368:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 791, + "nodeType": "Block", + "src": "8167:78:5", + "statements": [ + { + "id": 790, + "nodeType": "UncheckedBlock", + "src": "8177:62:5", + "statements": [ + { + "expression": { + "id": 788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 784, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "8201:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 786, + "indexExpression": { + "id": 785, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "8211:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8201:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 787, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "8223:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "8201:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 789, + "nodeType": "ExpressionStatement", + "src": "8201:27:5" + } + ] + } + ] + }, + "documentation": { + "id": 777, + "nodeType": "StructuredDocumentation", + "src": "7456:631:5", + "text": " @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another." + }, + "id": 792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_increaseBalance", + "nameLocation": "8101:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "account", + "nameLocation": "8126:7:5", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "8118:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8118:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 781, + "mutability": "mutable", + "name": "value", + "nameLocation": "8143:5:5", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "8135:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 780, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "8135:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "8117:32:5" + }, + "returnParameters": { + "id": 783, + "nodeType": "ParameterList", + "parameters": [], + "src": "8167:0:5" + }, + "scope": 1325, + "src": "8092:153:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "8933:700:5", + "statements": [ + { + "assignments": [ + 805 + ], + "declarations": [ + { + "constant": false, + "id": 805, + "mutability": "mutable", + "name": "from", + "nameLocation": "8951:4:5", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "8943:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8943:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 809, + "initialValue": { + "arguments": [ + { + "id": 807, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "8967:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 806, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "8958:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8958:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8943:32:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 810, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "9035:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9051:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9043:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 811, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9043:7:5", + "typeDescriptions": {} + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9043:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9035:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 823, + "nodeType": "IfStatement", + "src": "9031:86:5", + "trueBody": { + "id": 822, + "nodeType": "Block", + "src": "9055:62:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 817, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9086:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 818, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "9092:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 819, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9098:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 816, + "name": "_checkAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "9069:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) view" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9069:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "9069:37:5" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 824, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9161:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9177:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9169:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 825, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9169:7:5", + "typeDescriptions": {} + } + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9169:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9161:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 851, + "nodeType": "IfStatement", + "src": "9157:256:5", + "trueBody": { + "id": 850, + "nodeType": "Block", + "src": "9181:232:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9294:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9286:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9286:7:5", + "typeDescriptions": {} + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9286:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 835, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9315:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9307:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9307:7:5", + "typeDescriptions": {} + } + }, + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9307:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "66616c7365", + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9319:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 830, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1194, + "src": "9277:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9277:48:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 842, + "nodeType": "ExpressionStatement", + "src": "9277:48:5" + }, + { + "id": 849, + "nodeType": "UncheckedBlock", + "src": "9340:63:5", + "statements": [ + { + "expression": { + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 843, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "9368:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 845, + "indexExpression": { + "id": 844, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9378:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9368:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9368:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 848, + "nodeType": "ExpressionStatement", + "src": "9368:20:5" + } + ] + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9427:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9441:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 853, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9433:7:5", + "typeDescriptions": {} + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9433:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9427:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 866, + "nodeType": "IfStatement", + "src": "9423:107:5", + "trueBody": { + "id": 865, + "nodeType": "Block", + "src": "9445:85:5", + "statements": [ + { + "id": 864, + "nodeType": "UncheckedBlock", + "src": "9459:61:5", + "statements": [ + { + "expression": { + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 858, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "9487:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 860, + "indexExpression": { + "id": 859, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9497:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9487:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9504:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9487:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 863, + "nodeType": "ExpressionStatement", + "src": "9487:18:5" + } + ] + } + ] + } + }, + { + "expression": { + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 867, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "9540:7:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 869, + "indexExpression": { + "id": 868, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9548:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9540:16:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 870, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9559:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9540:21:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 872, + "nodeType": "ExpressionStatement", + "src": "9540:21:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 874, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9586:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 875, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9592:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 876, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9596:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 873, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "9577:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9577:27:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 878, + "nodeType": "EmitStatement", + "src": "9572:32:5" + }, + { + "expression": { + "id": 879, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9622:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 803, + "id": 880, + "nodeType": "Return", + "src": "9615:11:5" + } + ] + }, + "documentation": { + "id": 793, + "nodeType": "StructuredDocumentation", + "src": "8251:582:5", + "text": " @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}." + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "8847:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 795, + "mutability": "mutable", + "name": "to", + "nameLocation": "8863:2:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8855:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8855:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 797, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8875:7:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8867:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8867:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "auth", + "nameLocation": "8892:4:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8884:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8884:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8854:43:5" + }, + "returnParameters": { + "id": 803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 802, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8924:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8924:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8923:9:5" + }, + "scope": 1325, + "src": "8838:795:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 931, + "nodeType": "Block", + "src": "10008:274:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 890, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "10022:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10036:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10028:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10028:7:5", + "typeDescriptions": {} + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10028:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10022:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 904, + "nodeType": "IfStatement", + "src": "10018:87:5", + "trueBody": { + "id": 903, + "nodeType": "Block", + "src": "10040:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10091:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10083:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 897, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10083:7:5", + "typeDescriptions": {} + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10083:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 896, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "10061:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10061:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 902, + "nodeType": "RevertStatement", + "src": "10054:40:5" + } + ] + } + }, + { + "assignments": [ + 906 + ], + "declarations": [ + { + "constant": false, + "id": 906, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "10122:13:5", + "nodeType": "VariableDeclaration", + "scope": 931, + "src": "10114:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10114:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 915, + "initialValue": { + "arguments": [ + { + "id": 908, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "10146:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 909, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "10150:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10159:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10159:7:5", + "typeDescriptions": {} + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10159:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 907, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "10138:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10138:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10114:56:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 916, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 906, + "src": "10184:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10209:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10201:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10201:7:5", + "typeDescriptions": {} + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10201:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10184:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 930, + "nodeType": "IfStatement", + "src": "10180:96:5", + "trueBody": { + "id": 929, + "nodeType": "Block", + "src": "10213:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10262:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10254:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10254:7:5", + "typeDescriptions": {} + } + }, + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10254:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 922, + "name": "ERC721InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "10234:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10234:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 928, + "nodeType": "RevertStatement", + "src": "10227:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "9639:311:5", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 932, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "9964:5:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "to", + "nameLocation": "9978:2:5", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "9970:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 884, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9970:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "9990:7:5", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "9982:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9982:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9969:29:5" + }, + "returnParameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [], + "src": "10008:0:5" + }, + "scope": 1325, + "src": "9955:327:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 946, + "nodeType": "Block", + "src": "10690:43:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 941, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "10710:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 942, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "10714:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10723:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 940, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 973, + "src": "10700:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10700:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 945, + "nodeType": "ExpressionStatement", + "src": "10700:26:5" + } + ] + }, + "documentation": { + "id": 933, + "nodeType": "StructuredDocumentation", + "src": "10288:340:5", + "text": " @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 947, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "10642:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "to", + "nameLocation": "10660:2:5", + "nodeType": "VariableDeclaration", + "scope": 947, + "src": "10652:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 934, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10652:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10672:7:5", + "nodeType": "VariableDeclaration", + "scope": 947, + "src": "10664:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10664:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10651:29:5" + }, + "returnParameters": { + "id": 939, + "nodeType": "ParameterList", + "parameters": [], + "src": "10690:0:5" + }, + "scope": 1325, + "src": "10633:100:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 972, + "nodeType": "Block", + "src": "11038:98:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 958, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "11054:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 959, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "11058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 957, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "11048:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11048:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 961, + "nodeType": "ExpressionStatement", + "src": "11048:18:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11099:7:5", + "typeDescriptions": {} + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 967, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "11111:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 968, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "11115:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 969, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 954, + "src": "11124:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 962, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "11076:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11076:53:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "11076:53:5" + } + ] + }, + "documentation": { + "id": 948, + "nodeType": "StructuredDocumentation", + "src": "10739:210:5", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 973, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "10963:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 950, + "mutability": "mutable", + "name": "to", + "nameLocation": "10981:2:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "10973:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 949, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10973:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 952, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10993:7:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "10985:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10985:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 954, + "mutability": "mutable", + "name": "data", + "nameLocation": "11015:4:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "11002:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 953, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11002:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "10972:48:5" + }, + "returnParameters": { + "id": 956, + "nodeType": "ParameterList", + "parameters": [], + "src": "11038:0:5" + }, + "scope": 1325, + "src": "10954:182:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1005, + "nodeType": "Block", + "src": "11503:186:5", + "statements": [ + { + "assignments": [ + 980 + ], + "declarations": [ + { + "constant": false, + "id": 980, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "11521:13:5", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "11513:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11513:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 992, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11553:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11545:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11545:7:5", + "typeDescriptions": {} + } + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11545:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 986, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 976, + "src": "11557:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11574:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11566:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11566:7:5", + "typeDescriptions": {} + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11566:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 981, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "11537:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11537:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11513:64:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 993, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 980, + "src": "11591:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11616:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11608:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 994, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11608:7:5", + "typeDescriptions": {} + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11608:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11591:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1004, + "nodeType": "IfStatement", + "src": "11587:96:5", + "trueBody": { + "id": 1003, + "nodeType": "Block", + "src": "11620:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1000, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 976, + "src": "11664:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 999, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "11641:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11641:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1002, + "nodeType": "RevertStatement", + "src": "11634:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 974, + "nodeType": "StructuredDocumentation", + "src": "11142:315:5", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 1006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "11471:5:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 976, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "11485:7:5", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "11477:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11477:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11476:17:5" + }, + "returnParameters": { + "id": 978, + "nodeType": "ParameterList", + "parameters": [], + "src": "11503:0:5" + }, + "scope": 1325, + "src": "11462:227:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1065, + "nodeType": "Block", + "src": "12084:389:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1016, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12098:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12112:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12104:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12104:7:5", + "typeDescriptions": {} + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12104:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12098:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1030, + "nodeType": "IfStatement", + "src": "12094:87:5", + "trueBody": { + "id": 1029, + "nodeType": "Block", + "src": "12116:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12167:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12159:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12159:7:5", + "typeDescriptions": {} + } + }, + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12159:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1022, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "12137:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12137:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1028, + "nodeType": "RevertStatement", + "src": "12130:40:5" + } + ] + } + }, + { + "assignments": [ + 1032 + ], + "declarations": [ + { + "constant": false, + "id": 1032, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "12198:13:5", + "nodeType": "VariableDeclaration", + "scope": 1065, + "src": "12190:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12190:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1041, + "initialValue": { + "arguments": [ + { + "id": 1034, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12222:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1035, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12226:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12243:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12235:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12235:7:5", + "typeDescriptions": {} + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12235:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1033, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "12214:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12214:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12190:56:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1042, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12260:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12285:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12277:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12277:7:5", + "typeDescriptions": {} + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12277:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12260:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1053, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12362:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1054, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1009, + "src": "12379:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12362:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1063, + "nodeType": "IfStatement", + "src": "12358:109:5", + "trueBody": { + "id": 1062, + "nodeType": "Block", + "src": "12385:82:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1057, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1009, + "src": "12427:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1058, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1059, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12442:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1056, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "12406:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$_t_error_$", + "typeString": "function (address,uint256,address) pure returns (error)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12406:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1061, + "nodeType": "RevertStatement", + "src": "12399:57:5" + } + ] + } + }, + "id": 1064, + "nodeType": "IfStatement", + "src": "12256:211:5", + "trueBody": { + "id": 1052, + "nodeType": "Block", + "src": "12289:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1049, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12333:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1048, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "12310:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12310:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1051, + "nodeType": "RevertStatement", + "src": "12303:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1007, + "nodeType": "StructuredDocumentation", + "src": "11695:313:5", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 1066, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "12022:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1009, + "mutability": "mutable", + "name": "from", + "nameLocation": "12040:4:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12032:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1008, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12032:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1011, + "mutability": "mutable", + "name": "to", + "nameLocation": "12054:2:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12046:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12046:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1013, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12066:7:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12058:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12031:43:5" + }, + "returnParameters": { + "id": 1015, + "nodeType": "ParameterList", + "parameters": [], + "src": "12084:0:5" + }, + "scope": 1325, + "src": "12013:460:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1083, + "nodeType": "Block", + "src": "13481:53:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1077, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "13505:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1071, + "src": "13511:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1079, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1073, + "src": "13515:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13524:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1076, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1084, + 1110 + ], + "referencedDeclaration": 1110, + "src": "13491:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13491:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1082, + "nodeType": "ExpressionStatement", + "src": "13491:36:5" + } + ] + }, + "documentation": { + "id": 1067, + "nodeType": "StructuredDocumentation", + "src": "12479:922:5", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1084, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "13415:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "from", + "nameLocation": "13437:4:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13429:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1068, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13429:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1071, + "mutability": "mutable", + "name": "to", + "nameLocation": "13451:2:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13443:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13443:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1073, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13463:7:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13455:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13455:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13428:43:5" + }, + "returnParameters": { + "id": 1075, + "nodeType": "ParameterList", + "parameters": [], + "src": "13481:0:5" + }, + "scope": 1325, + "src": "13406:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "13873:102:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1097, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13893:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1098, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13899:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1099, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "13903:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1096, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "13883:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13883:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1101, + "nodeType": "ExpressionStatement", + "src": "13883:28:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1103, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13944:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1104, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13950:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1105, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "13954:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1106, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "13963:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1102, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "13921:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13921:47:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1108, + "nodeType": "ExpressionStatement", + "src": "13921:47:5" + } + ] + }, + "documentation": { + "id": 1085, + "nodeType": "StructuredDocumentation", + "src": "13540:226:5", + "text": " @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "13780:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1087, + "mutability": "mutable", + "name": "from", + "nameLocation": "13802:4:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13794:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13794:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "to", + "nameLocation": "13816:2:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13808:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13808:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13828:7:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13820:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13820:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "data", + "nameLocation": "13850:4:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13837:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1092, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13837:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13793:62:5" + }, + "returnParameters": { + "id": 1095, + "nodeType": "ParameterList", + "parameters": [], + "src": "13873:0:5" + }, + "scope": 1325, + "src": "13771:204:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1127, + "nodeType": "Block", + "src": "14488:50:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1121, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "14507:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1122, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "14511:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1123, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "14520:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14526:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1120, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1194, + "src": "14498:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14498:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1126, + "nodeType": "ExpressionStatement", + "src": "14498:33:5" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "13981:432:5", + "text": " @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 1128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "14427:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "to", + "nameLocation": "14444:2:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14436:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14436:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14456:7:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14448:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14448:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "auth", + "nameLocation": "14473:4:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14465:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14465:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14435:43:5" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [], + "src": "14488:0:5" + }, + "scope": 1325, + "src": "14418:120:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1193, + "nodeType": "Block", + "src": "14814:568:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1140, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "14880:9:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1141, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "14893:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14909:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14901:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14901:7:5", + "typeDescriptions": {} + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14901:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14893:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14880:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1186, + "nodeType": "IfStatement", + "src": "14876:460:5", + "trueBody": { + "id": 1185, + "nodeType": "Block", + "src": "14913:423:5", + "statements": [ + { + "assignments": [ + 1149 + ], + "declarations": [ + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "owner", + "nameLocation": "14935:5:5", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "14927:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14927:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1153, + "initialValue": { + "arguments": [ + { + "id": 1151, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "14957:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1150, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "14943:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14943:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14927:38:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1154, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15093:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15109:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15101:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15101:7:5", + "typeDescriptions": {} + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15101:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15093:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15115:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1161, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15124:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15115:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15093:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15132:30:5", + "subExpression": { + "arguments": [ + { + "id": 1165, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15150:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1166, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15157:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1164, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "15133:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15133:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15093:69:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1175, + "nodeType": "IfStatement", + "src": "15089:142:5", + "trueBody": { + "id": 1174, + "nodeType": "Block", + "src": "15164:67:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1171, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15211:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1170, + "name": "ERC721InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 263, + "src": "15189:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15189:27:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1173, + "nodeType": "RevertStatement", + "src": "15182:34:5" + } + ] + } + }, + { + "condition": { + "id": 1176, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "15249:9:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1184, + "nodeType": "IfStatement", + "src": "15245:81:5", + "trueBody": { + "id": 1183, + "nodeType": "Block", + "src": "15260:66:5", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 1178, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15292:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1179, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "15299:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1180, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "15303:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1177, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "15283:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15283:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1182, + "nodeType": "EmitStatement", + "src": "15278:33:5" + } + ] + } + } + ] + } + }, + { + "expression": { + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1187, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "15346:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1189, + "indexExpression": { + "id": 1188, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "15362:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15346:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1190, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "15373:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15346:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "15346:29:5" + } + ] + }, + "documentation": { + "id": 1129, + "nodeType": "StructuredDocumentation", + "src": "14544:171:5", + "text": " @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers." + }, + "id": 1194, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "14729:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "to", + "nameLocation": "14746:2:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14738:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14738:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1133, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14758:7:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14750:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14750:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1135, + "mutability": "mutable", + "name": "auth", + "nameLocation": "14775:4:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14767:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14767:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1137, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "14786:9:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14781:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1136, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14781:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14737:59:5" + }, + "returnParameters": { + "id": 1139, + "nodeType": "ParameterList", + "parameters": [], + "src": "14814:0:5" + }, + "scope": 1325, + "src": "14720:662:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1230, + "nodeType": "Block", + "src": "15684:219:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1204, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15698:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15718:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15710:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15710:7:5", + "typeDescriptions": {} + } + }, + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15710:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15698:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1215, + "nodeType": "IfStatement", + "src": "15694:91:5", + "trueBody": { + "id": 1214, + "nodeType": "Block", + "src": "15722:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1211, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15765:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1210, + "name": "ERC721InvalidOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "15743:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15743:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1213, + "nodeType": "RevertStatement", + "src": "15736:38:5" + } + ] + } + }, + { + "expression": { + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1216, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "15794:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1219, + "indexExpression": { + "id": 1217, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "15813:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15794:25:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1220, + "indexExpression": { + "id": 1218, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15820:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15794:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1221, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "15832:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15794:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1223, + "nodeType": "ExpressionStatement", + "src": "15794:46:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1225, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "15870:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15877:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1227, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "15887:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1224, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1359, + "src": "15855:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15855:41:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1229, + "nodeType": "EmitStatement", + "src": "15850:46:5" + } + ] + }, + "documentation": { + "id": 1195, + "nodeType": "StructuredDocumentation", + "src": "15388:198:5", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event." + }, + "id": 1231, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "15600:18:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "owner", + "nameLocation": "15627:5:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15619:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15619:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "mutability": "mutable", + "name": "operator", + "nameLocation": "15642:8:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15634:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15634:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "mutability": "mutable", + "name": "approved", + "nameLocation": "15657:8:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15652:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1200, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15652:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15618:48:5" + }, + "returnParameters": { + "id": 1203, + "nodeType": "ParameterList", + "parameters": [], + "src": "15684:0:5" + }, + "scope": 1325, + "src": "15591:312:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "16210:169:5", + "statements": [ + { + "assignments": [ + 1240 + ], + "declarations": [ + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "owner", + "nameLocation": "16228:5:5", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "16220:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16220:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1244, + "initialValue": { + "arguments": [ + { + "id": 1242, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "16245:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1241, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "16236:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16236:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16220:33:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1245, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "16267:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16284:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16276:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16276:7:5", + "typeDescriptions": {} + } + }, + "id": 1249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16276:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16267:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1256, + "nodeType": "IfStatement", + "src": "16263:88:5", + "trueBody": { + "id": 1255, + "nodeType": "Block", + "src": "16288:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1252, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "16332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1251, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "16309:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16309:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1254, + "nodeType": "RevertStatement", + "src": "16302:38:5" + } + ] + } + }, + { + "expression": { + "id": 1257, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "16367:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1238, + "id": 1258, + "nodeType": "Return", + "src": "16360:12:5" + } + ] + }, + "documentation": { + "id": 1232, + "nodeType": "StructuredDocumentation", + "src": "15909:224:5", + "text": " @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}." + }, + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireOwned", + "nameLocation": "16147:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1234, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16169:7:5", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "16161:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16161:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16160:17:5" + }, + "returnParameters": { + "id": 1238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "16201:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16201:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16200:9:5" + }, + "scope": 1325, + "src": "16138:241:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1323, + "nodeType": "Block", + "src": "17020:680:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1272, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17034:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17037:4:5", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "17034:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17042:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17034:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17051:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17034:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1322, + "nodeType": "IfStatement", + "src": "17030:664:5", + "trueBody": { + "id": 1321, + "nodeType": "Block", + "src": "17054:640:5", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1301, + "nodeType": "Block", + "src": "17168:162:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1290, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "17190:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 1291, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "17200:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$1460_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17216:16:5", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1459, + "src": "17200:32:5", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17233:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "17200:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "17190:51:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1300, + "nodeType": "IfStatement", + "src": "17186:130:5", + "trueBody": { + "id": 1299, + "nodeType": "Block", + "src": "17243:73:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1296, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17294:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1295, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "17272:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17272:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1298, + "nodeType": "RevertStatement", + "src": "17265:32:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1302, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "retval", + "nameLocation": "17160:6:5", + "nodeType": "VariableDeclaration", + "scope": 1302, + "src": "17153:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1287, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "17153:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "17152:15:5" + }, + "src": "17144:186:5" + }, + { + "block": { + "id": 1318, + "nodeType": "Block", + "src": "17359:325:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1306, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1304, + "src": "17381:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17388:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17381:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17398:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17381:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1316, + "nodeType": "Block", + "src": "17480:190:5", + "statements": [ + { + "AST": { + "nativeSrc": "17566:86:5", + "nodeType": "YulBlock", + "src": "17566:86:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17603:2:5", + "nodeType": "YulLiteral", + "src": "17603:2:5", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "17607:6:5", + "nodeType": "YulIdentifier", + "src": "17607:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17599:3:5", + "nodeType": "YulIdentifier", + "src": "17599:3:5" + }, + "nativeSrc": "17599:15:5", + "nodeType": "YulFunctionCall", + "src": "17599:15:5" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "17622:6:5", + "nodeType": "YulIdentifier", + "src": "17622:6:5" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17616:5:5", + "nodeType": "YulIdentifier", + "src": "17616:5:5" + }, + "nativeSrc": "17616:13:5", + "nodeType": "YulFunctionCall", + "src": "17616:13:5" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17592:6:5", + "nodeType": "YulIdentifier", + "src": "17592:6:5" + }, + "nativeSrc": "17592:38:5", + "nodeType": "YulFunctionCall", + "src": "17592:38:5" + }, + "nativeSrc": "17592:38:5", + "nodeType": "YulExpressionStatement", + "src": "17592:38:5" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1304, + "isOffset": false, + "isSlot": false, + "src": "17607:6:5", + "valueSize": 1 + }, + { + "declaration": 1304, + "isOffset": false, + "isSlot": false, + "src": "17622:6:5", + "valueSize": 1 + } + ], + "id": 1315, + "nodeType": "InlineAssembly", + "src": "17557:95:5" + } + ] + }, + "id": 1317, + "nodeType": "IfStatement", + "src": "17377:293:5", + "trueBody": { + "id": 1314, + "nodeType": "Block", + "src": "17401:73:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1311, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17452:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1310, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "17430:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17430:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1313, + "nodeType": "RevertStatement", + "src": "17423:32:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1319, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1304, + "mutability": "mutable", + "name": "reason", + "nameLocation": "17351:6:5", + "nodeType": "VariableDeclaration", + "scope": 1319, + "src": "17338:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17338:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "17337:21:5" + }, + "src": "17331:353:5" + } + ], + "externalCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1281, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "17109:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17109:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1283, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "17123:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1284, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "17129:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "17138:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1278, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17088:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1277, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "17072:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$1460_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17072:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$1460", + "typeString": "contract IERC721Receiver" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17092:16:5", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1459, + "src": "17072:36:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17072:71:5", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1320, + "nodeType": "TryStatement", + "src": "17068:616:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1261, + "nodeType": "StructuredDocumentation", + "src": "16385:528:5", + "text": " @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call" + }, + "id": 1324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nameLocation": "16927:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "from", + "nameLocation": "16958:4:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16950:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16950:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1265, + "mutability": "mutable", + "name": "to", + "nameLocation": "16972:2:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16964:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16964:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1267, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16984:7:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16976:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16976:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1269, + "mutability": "mutable", + "name": "data", + "nameLocation": "17006:4:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16993:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1268, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16993:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "16949:62:5" + }, + "returnParameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [], + "src": "17020:0:5" + }, + "scope": 1325, + "src": "16918:782:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1326, + "src": "776:16926:5", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "107:17596:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "exportedSymbols": { + "IERC165": [ + 2351 + ], + "IERC721": [ + 1442 + ] + }, + "id": 1443, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1327, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 1329, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1443, + "sourceUnit": 2352, + "src": "134:62:6", + "symbolAliases": [ + { + "foreign": { + "id": 1328, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "142:7:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1331, + "name": "IERC165", + "nameLocations": [ + "287:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2351, + "src": "287:7:6" + }, + "id": 1332, + "nodeType": "InheritanceSpecifier", + "src": "287:7:6" + } + ], + "canonicalName": "IERC721", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1330, + "nodeType": "StructuredDocumentation", + "src": "198:67:6", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 1442, + "linearizedBaseContracts": [ + 1442, + 2351 + ], + "name": "IERC721", + "nameLocation": "276:7:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1333, + "nodeType": "StructuredDocumentation", + "src": "301:88:6", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 1341, + "name": "Transfer", + "nameLocation": "400:8:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1335, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "425:4:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "409:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "409:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1337, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "447:2:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "431:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "431:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1339, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "467:7:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "451:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "451:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "408:67:6" + }, + "src": "394:82:6" + }, + { + "anonymous": false, + "documentation": { + "id": 1342, + "nodeType": "StructuredDocumentation", + "src": "482:94:6", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 1350, + "name": "Approval", + "nameLocation": "587:8:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1344, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "612:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "596:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "596:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1346, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nameLocation": "635:8:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "619:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "619:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1348, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "661:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "645:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "595:74:6" + }, + "src": "581:89:6" + }, + { + "anonymous": false, + "documentation": { + "id": 1351, + "nodeType": "StructuredDocumentation", + "src": "676:117:6", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 1359, + "name": "ApprovalForAll", + "nameLocation": "804:14:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1353, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "835:5:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "819:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "819:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1355, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "858:8:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "842:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "842:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "873:8:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "868:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1356, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "868:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "818:64:6" + }, + "src": "798:85:6" + }, + { + "documentation": { + "id": 1360, + "nodeType": "StructuredDocumentation", + "src": "889:76:6", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 1367, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "979:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "owner", + "nameLocation": "997:5:6", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "989:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "989:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "988:15:6" + }, + "returnParameters": { + "id": 1366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1035:7:6", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "1027:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1027:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1026:17:6" + }, + "scope": 1442, + "src": "970:74:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1368, + "nodeType": "StructuredDocumentation", + "src": "1050:131:6", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 1375, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1195:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1370, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1211:7:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "1203:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1203:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1202:17:6" + }, + "returnParameters": { + "id": 1374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1373, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1251:5:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "1243:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1243:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1242:15:6" + }, + "scope": 1442, + "src": "1186:72:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1376, + "nodeType": "StructuredDocumentation", + "src": "1264:565:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 1387, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1843:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1378, + "mutability": "mutable", + "name": "from", + "nameLocation": "1868:4:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1860:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1860:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1380, + "mutability": "mutable", + "name": "to", + "nameLocation": "1882:2:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1874:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1874:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1382, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1894:7:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1886:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1886:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "data", + "nameLocation": "1918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1903:19:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1383, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1903:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1859:64:6" + }, + "returnParameters": { + "id": 1386, + "nodeType": "ParameterList", + "parameters": [], + "src": "1932:0:6" + }, + "scope": 1442, + "src": "1834:99:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1388, + "nodeType": "StructuredDocumentation", + "src": "1939:705:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 1397, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "2658:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "mutability": "mutable", + "name": "from", + "nameLocation": "2683:4:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2675:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2675:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "mutability": "mutable", + "name": "to", + "nameLocation": "2697:2:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2689:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2689:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2709:7:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2701:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2701:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2674:43:6" + }, + "returnParameters": { + "id": 1396, + "nodeType": "ParameterList", + "parameters": [], + "src": "2726:0:6" + }, + "scope": 1442, + "src": "2649:78:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1398, + "nodeType": "StructuredDocumentation", + "src": "2733:732:6", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 1407, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "3479:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "from", + "nameLocation": "3500:4:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3492:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3492:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1402, + "mutability": "mutable", + "name": "to", + "nameLocation": "3514:2:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3506:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3506:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1404, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3526:7:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3518:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3518:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3491:43:6" + }, + "returnParameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [], + "src": "3543:0:6" + }, + "scope": 1442, + "src": "3470:74:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1408, + "nodeType": "StructuredDocumentation", + "src": "3550:452:6", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 1415, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4016:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1410, + "mutability": "mutable", + "name": "to", + "nameLocation": "4032:2:6", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "4024:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4024:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1412, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4044:7:6", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "4036:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4036:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4023:29:6" + }, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "4061:0:6" + }, + "scope": 1442, + "src": "4007:55:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1416, + "nodeType": "StructuredDocumentation", + "src": "4068:315:6", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 1423, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4397:17:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1418, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4423:8:6", + "nodeType": "VariableDeclaration", + "scope": 1423, + "src": "4415:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4415:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "approved", + "nameLocation": "4438:8:6", + "nodeType": "VariableDeclaration", + "scope": 1423, + "src": "4433:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1419, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4433:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4414:33:6" + }, + "returnParameters": { + "id": 1422, + "nodeType": "ParameterList", + "parameters": [], + "src": "4456:0:6" + }, + "scope": 1442, + "src": "4388:69:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1424, + "nodeType": "StructuredDocumentation", + "src": "4463:139:6", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 1431, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4616:11:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1426, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4636:7:6", + "nodeType": "VariableDeclaration", + "scope": 1431, + "src": "4628:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4628:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4627:17:6" + }, + "returnParameters": { + "id": 1430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1429, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4676:8:6", + "nodeType": "VariableDeclaration", + "scope": 1431, + "src": "4668:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4668:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4667:18:6" + }, + "scope": 1442, + "src": "4607:79:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "4692:138:6", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 1441, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4844:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1434, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4869:5:6", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4861:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4861:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1436, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4884:8:6", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4876:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4876:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4860:33:6" + }, + "returnParameters": { + "id": 1440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4917:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1438, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4917:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4916:6:6" + }, + "scope": 1442, + "src": "4835:88:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1443, + "src": "266:4659:6", + "usedErrors": [], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "108:4818:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "exportedSymbols": { + "IERC721Receiver": [ + 1460 + ] + }, + "id": 1461, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1444, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "116:24:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1445, + "nodeType": "StructuredDocumentation", + "src": "142:152:7", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 1460, + "linearizedBaseContracts": [ + 1460 + ], + "name": "IERC721Receiver", + "nameLocation": "305:15:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1446, + "nodeType": "StructuredDocumentation", + "src": "327:500:7", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 1459, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "841:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "operator", + "nameLocation": "875:8:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "867:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "867:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1450, + "mutability": "mutable", + "name": "from", + "nameLocation": "901:4:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "893:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1449, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "893:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "923:7:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "915:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "915:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1454, + "mutability": "mutable", + "name": "data", + "nameLocation": "955:4:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "940:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1453, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "940:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "857:108:7" + }, + "returnParameters": { + "id": 1458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "984:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1456, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "984:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "983:8:7" + }, + "scope": 1460, + "src": "832:160:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1461, + "src": "295:699:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "116:879:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "exportedSymbols": { + "ERC721": [ + 1325 + ], + "ERC721Enumerable": [ + 1844 + ], + "IERC165": [ + 2351 + ], + "IERC721Enumerable": [ + 2002 + ] + }, + "id": 1845, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1462, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "128:24:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "../ERC721.sol", + "id": 1464, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1845, + "sourceUnit": 1326, + "src": "154:37:8", + "symbolAliases": [ + { + "foreign": { + "id": 1463, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1325, + "src": "162:6:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol", + "file": "./IERC721Enumerable.sol", + "id": 1466, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1845, + "sourceUnit": 2003, + "src": "192:58:8", + "symbolAliases": [ + { + "foreign": { + "id": 1465, + "name": "IERC721Enumerable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2002, + "src": "200:17:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../../utils/introspection/ERC165.sol", + "id": 1468, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1845, + "sourceUnit": 2340, + "src": "251:64:8", + "symbolAliases": [ + { + "foreign": { + "id": 1467, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "259:7:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1470, + "name": "ERC721", + "nameLocations": [ + "746:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "746:6:8" + }, + "id": 1471, + "nodeType": "InheritanceSpecifier", + "src": "746:6:8" + }, + { + "baseName": { + "id": 1472, + "name": "IERC721Enumerable", + "nameLocations": [ + "754:17:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2002, + "src": "754:17:8" + }, + "id": 1473, + "nodeType": "InheritanceSpecifier", + "src": "754:17:8" + } + ], + "canonicalName": "ERC721Enumerable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1469, + "nodeType": "StructuredDocumentation", + "src": "317:390:8", + "text": " @dev This implements an optional extension of {ERC721} defined in the EIP that adds enumerability\n of all the token ids in the contract as well as all token ids owned by each account.\n CAUTION: `ERC721` extensions that implement custom `balanceOf` logic, such as `ERC721Consecutive`,\n interfere with enumerability and should not be used together with `ERC721Enumerable`." + }, + "fullyImplemented": true, + "id": 1844, + "linearizedBaseContracts": [ + 1844, + 2002, + 1325, + 269, + 2030, + 1442, + 2339, + 2351, + 2060 + ], + "name": "ERC721Enumerable", + "nameLocation": "726:16:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1479, + "mutability": "mutable", + "name": "_ownedTokens", + "nameLocation": "846:12:8", + "nodeType": "VariableDeclaration", + "scope": 1844, + "src": "778:80:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + }, + "typeName": { + "id": 1478, + "keyName": "owner", + "keyNameLocation": "794:5:8", + "keyType": { + "id": 1474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "786:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "778:59:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1477, + "keyName": "index", + "keyNameLocation": "819:5:8", + "keyType": { + "id": 1475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "811:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "803:33:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1476, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "828:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1483, + "mutability": "mutable", + "name": "_ownedTokensIndex", + "nameLocation": "908:17:8", + "nodeType": "VariableDeclaration", + "scope": 1844, + "src": "864:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 1482, + "keyName": "tokenId", + "keyNameLocation": "880:7:8", + "keyType": { + "id": 1480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "872:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "864:35:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "891:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "_allTokens", + "nameLocation": "950:10:8", + "nodeType": "VariableDeclaration", + "scope": 1844, + "src": "932:28:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "932:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1485, + "nodeType": "ArrayTypeName", + "src": "932:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1490, + "mutability": "mutable", + "name": "_allTokensIndex", + "nameLocation": "1010:15:8", + "nodeType": "VariableDeclaration", + "scope": 1844, + "src": "966:59:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 1489, + "keyName": "tokenId", + "keyNameLocation": "982:7:8", + "keyType": { + "id": 1487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "974:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "966:35:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1488, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "993:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 1491, + "nodeType": "StructuredDocumentation", + "src": "1032:168:8", + "text": " @dev An `owner`'s token query was out of bounds for `index`.\n NOTE: The owner being `address(0)` indicates a global out of bounds index." + }, + "errorSelector": "a57d13dc", + "id": 1497, + "name": "ERC721OutOfBoundsIndex", + "nameLocation": "1211:22:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1493, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1242:5:8", + "nodeType": "VariableDeclaration", + "scope": 1497, + "src": "1234:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1234:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1495, + "mutability": "mutable", + "name": "index", + "nameLocation": "1257:5:8", + "nodeType": "VariableDeclaration", + "scope": 1497, + "src": "1249:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1249:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1233:30:8" + }, + "src": "1205:59:8" + }, + { + "documentation": { + "id": 1498, + "nodeType": "StructuredDocumentation", + "src": "1270:50:8", + "text": " @dev Batch mint is not allowed." + }, + "errorSelector": "59171fc1", + "id": 1500, + "name": "ERC721EnumerableForbiddenBatchMint", + "nameLocation": "1331:34:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1499, + "nodeType": "ParameterList", + "parameters": [], + "src": "1365:2:8" + }, + "src": "1325:43:8" + }, + { + "baseFunctions": [ + 417, + 2350 + ], + "body": { + "id": 1523, + "nodeType": "Block", + "src": "1543:114:8", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1511, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1503, + "src": "1560:11:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1513, + "name": "IERC721Enumerable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2002, + "src": "1580:17:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Enumerable_$2002_$", + "typeString": "type(contract IERC721Enumerable)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721Enumerable_$2002_$", + "typeString": "type(contract IERC721Enumerable)" + } + ], + "id": 1512, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "1575:4:8", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1575:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Enumerable_$2002", + "typeString": "type(contract IERC721Enumerable)" + } + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1599:11:8", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1575:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1560:50:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1519, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1503, + "src": "1638:11:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1517, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "1614:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721Enumerable_$1844_$", + "typeString": "type(contract super ERC721Enumerable)" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1620:17:8", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 417, + "src": "1614:23:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1614:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1560:90:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1510, + "id": 1522, + "nodeType": "Return", + "src": "1553:97:8" + } + ] + }, + "documentation": { + "id": 1501, + "nodeType": "StructuredDocumentation", + "src": "1374:56:8", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1444:17:8", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1507, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1505, + "name": "IERC165", + "nameLocations": [ + "1511:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2351, + "src": "1511:7:8" + }, + { + "id": 1506, + "name": "ERC721", + "nameLocations": [ + "1520:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1520:6:8" + } + ], + "src": "1502:25:8" + }, + "parameters": { + "id": 1504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1503, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1469:11:8", + "nodeType": "VariableDeclaration", + "scope": 1524, + "src": "1462:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1502, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1462:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1461:20:8" + }, + "returnParameters": { + "id": 1510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1524, + "src": "1537:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1508, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1537:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1536:6:8" + }, + "scope": 1844, + "src": "1435:222:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1993 + ], + "body": { + "id": 1552, + "nodeType": "Block", + "src": "1833:158:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1534, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1847:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "arguments": [ + { + "id": 1536, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1866:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1535, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 445, + "src": "1856:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1856:16:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1847:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1545, + "nodeType": "IfStatement", + "src": "1843:99:8", + "trueBody": { + "id": 1544, + "nodeType": "Block", + "src": "1874:68:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1540, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1918:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1541, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1925:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1539, + "name": "ERC721OutOfBoundsIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "1895:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 1542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1895:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1543, + "nodeType": "RevertStatement", + "src": "1888:43:8" + } + ] + } + }, + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1546, + "name": "_ownedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "1958:12:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 1548, + "indexExpression": { + "id": 1547, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1958:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1978:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1958:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1533, + "id": 1551, + "nodeType": "Return", + "src": "1951:33:8" + } + ] + }, + "documentation": { + "id": 1525, + "nodeType": "StructuredDocumentation", + "src": "1663:68:8", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 1553, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nameLocation": "1745:19:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1527, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1773:5:8", + "nodeType": "VariableDeclaration", + "scope": 1553, + "src": "1765:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1765:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1529, + "mutability": "mutable", + "name": "index", + "nameLocation": "1788:5:8", + "nodeType": "VariableDeclaration", + "scope": 1553, + "src": "1780:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1780:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1764:30:8" + }, + "returnParameters": { + "id": 1533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1532, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1553, + "src": "1824:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1531, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1824:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1823:9:8" + }, + "scope": 1844, + "src": "1736:255:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1983 + ], + "body": { + "id": 1562, + "nodeType": "Block", + "src": "2123:41:8", + "statements": [ + { + "expression": { + "expression": { + "id": 1559, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "2140:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2151:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2140:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1558, + "id": 1561, + "nodeType": "Return", + "src": "2133:24:8" + } + ] + }, + "documentation": { + "id": 1554, + "nodeType": "StructuredDocumentation", + "src": "1997:60:8", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 1563, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "2071:11:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1555, + "nodeType": "ParameterList", + "parameters": [], + "src": "2082:2:8" + }, + "returnParameters": { + "id": 1558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1557, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1563, + "src": "2114:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2113:9:8" + }, + "scope": 1844, + "src": "2062:102:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2001 + ], + "body": { + "id": 1589, + "nodeType": "Block", + "src": "2311:151:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1571, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "2325:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1572, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "2334:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2334:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2325:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1584, + "nodeType": "IfStatement", + "src": "2321:101:8", + "trueBody": { + "id": 1583, + "nodeType": "Block", + "src": "2349:73:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2401:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2393:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2393:7:8", + "typeDescriptions": {} + } + }, + "id": 1579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2393:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1580, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "2405:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1575, + "name": "ERC721OutOfBoundsIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "2370:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2370:41:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1582, + "nodeType": "RevertStatement", + "src": "2363:48:8" + } + ] + } + }, + { + "expression": { + "baseExpression": { + "id": 1585, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "2438:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1587, + "indexExpression": { + "id": 1586, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "2449:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2438:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1570, + "id": 1588, + "nodeType": "Return", + "src": "2431:24:8" + } + ] + }, + "documentation": { + "id": 1564, + "nodeType": "StructuredDocumentation", + "src": "2170:61:8", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 1590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nameLocation": "2245:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "index", + "nameLocation": "2266:5:8", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "2258:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2257:15:8" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "2302:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2302:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2301:9:8" + }, + "scope": 1844, + "src": "2236:226:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 882 + ], + "body": { + "id": 1658, + "nodeType": "Block", + "src": "2622:521:8", + "statements": [ + { + "assignments": [ + 1604 + ], + "declarations": [ + { + "constant": false, + "id": 1604, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "2640:13:8", + "nodeType": "VariableDeclaration", + "scope": 1658, + "src": "2632:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2632:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1611, + "initialValue": { + "arguments": [ + { + "id": 1607, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1593, + "src": "2670:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1608, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "2674:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1609, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "2683:4:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1605, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "2656:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721Enumerable_$1844_$", + "typeString": "type(contract super ERC721Enumerable)" + } + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2662:7:8", + "memberName": "_update", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "2656:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2656:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2632:56:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1612, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "2703:13:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2728:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2720:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2720:7:8", + "typeDescriptions": {} + } + }, + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2720:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2703:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1623, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "2807:13:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1593, + "src": "2824:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2807:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1632, + "nodeType": "IfStatement", + "src": "2803:106:8", + "trueBody": { + "id": 1631, + "nodeType": "Block", + "src": "2828:81:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1627, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "2875:13:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1628, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "2890:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1626, + "name": "_removeTokenFromOwnerEnumeration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1770, + "src": "2842:32:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2842:56:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1630, + "nodeType": "ExpressionStatement", + "src": "2842:56:8" + } + ] + } + }, + "id": 1633, + "nodeType": "IfStatement", + "src": "2699:210:8", + "trueBody": { + "id": 1622, + "nodeType": "Block", + "src": "2732:65:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1619, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "2778:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1618, + "name": "_addTokenToAllTokensEnumeration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "2746:31:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2746:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1621, + "nodeType": "ExpressionStatement", + "src": "2746:40:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1593, + "src": "2922:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2936:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2928:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2928:7:8", + "typeDescriptions": {} + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2928:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2922:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1645, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "3020:13:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1646, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1593, + "src": "3037:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1654, + "nodeType": "IfStatement", + "src": "3016:90:8", + "trueBody": { + "id": 1653, + "nodeType": "Block", + "src": "3041:65:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1649, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1593, + "src": "3083:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1650, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "3087:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1648, + "name": "_addTokenToOwnerEnumeration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "3055:27:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3055:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1652, + "nodeType": "ExpressionStatement", + "src": "3055:40:8" + } + ] + } + }, + "id": 1655, + "nodeType": "IfStatement", + "src": "2918:188:8", + "trueBody": { + "id": 1644, + "nodeType": "Block", + "src": "2940:70:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1641, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "2991:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1640, + "name": "_removeTokenFromAllTokensEnumeration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "2954:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2954:45:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1643, + "nodeType": "ExpressionStatement", + "src": "2954:45:8" + } + ] + } + }, + { + "expression": { + "id": 1656, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "3123:13:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1602, + "id": 1657, + "nodeType": "Return", + "src": "3116:20:8" + } + ] + }, + "documentation": { + "id": 1591, + "nodeType": "StructuredDocumentation", + "src": "2468:45:8", + "text": " @dev See {ERC721-_update}." + }, + "id": 1659, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "2527:7:8", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1599, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2595:8:8" + }, + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1593, + "mutability": "mutable", + "name": "to", + "nameLocation": "2543:2:8", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "2535:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2535:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2555:7:8", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "2547:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2547:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "auth", + "nameLocation": "2572:4:8", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "2564:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2564:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2534:43:8" + }, + "returnParameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1601, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "2613:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2613:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2612:9:8" + }, + "scope": 1844, + "src": "2518:625:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1689, + "nodeType": "Block", + "src": "3511:140:8", + "statements": [ + { + "assignments": [ + 1668 + ], + "declarations": [ + { + "constant": false, + "id": 1668, + "mutability": "mutable", + "name": "length", + "nameLocation": "3529:6:8", + "nodeType": "VariableDeclaration", + "scope": 1689, + "src": "3521:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3521:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1674, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1670, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "3548:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1669, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 445, + "src": "3538:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3538:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3554:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3538:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3521:34:8" + }, + { + "expression": { + "id": 1681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1675, + "name": "_ownedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3565:12:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 1678, + "indexExpression": { + "id": 1676, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "3578:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3565:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1679, + "indexExpression": { + "id": 1677, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1668, + "src": "3582:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3565:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1680, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1664, + "src": "3592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3565:34:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1682, + "nodeType": "ExpressionStatement", + "src": "3565:34:8" + }, + { + "expression": { + "id": 1687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1683, + "name": "_ownedTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "3609:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1685, + "indexExpression": { + "id": 1684, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1664, + "src": "3627:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3609:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1686, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1668, + "src": "3638:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3609:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1688, + "nodeType": "ExpressionStatement", + "src": "3609:35:8" + } + ] + }, + "documentation": { + "id": 1660, + "nodeType": "StructuredDocumentation", + "src": "3149:283:8", + "text": " @dev Private function to add a token to this extension's ownership-tracking data structures.\n @param to address representing the new owner of the given token ID\n @param tokenId uint256 ID of the token to be added to the tokens list of the given address" + }, + "id": 1690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addTokenToOwnerEnumeration", + "nameLocation": "3446:27:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1665, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "to", + "nameLocation": "3482:2:8", + "nodeType": "VariableDeclaration", + "scope": 1690, + "src": "3474:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3474:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1664, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3494:7:8", + "nodeType": "VariableDeclaration", + "scope": 1690, + "src": "3486:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3486:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3473:29:8" + }, + "returnParameters": { + "id": 1666, + "nodeType": "ParameterList", + "parameters": [], + "src": "3511:0:8" + }, + "scope": 1844, + "src": "3437:214:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1709, + "nodeType": "Block", + "src": "3912:95:8", + "statements": [ + { + "expression": { + "id": 1701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1696, + "name": "_allTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1490, + "src": "3922:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1698, + "indexExpression": { + "id": 1697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1693, + "src": "3938:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3922:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1699, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "3949:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3960:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3949:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3922:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1702, + "nodeType": "ExpressionStatement", + "src": "3922:44:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1706, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1693, + "src": "3992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1703, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "3976:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3987:4:8", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "3976:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256)" + } + }, + "id": 1707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3976:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1708, + "nodeType": "ExpressionStatement", + "src": "3976:24:8" + } + ] + }, + "documentation": { + "id": 1691, + "nodeType": "StructuredDocumentation", + "src": "3657:184:8", + "text": " @dev Private function to add a token to this extension's token tracking data structures.\n @param tokenId uint256 ID of the token to be added to the tokens list" + }, + "id": 1710, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addTokenToAllTokensEnumeration", + "nameLocation": "3855:31:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3895:7:8", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "3887:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3887:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3886:17:8" + }, + "returnParameters": { + "id": 1695, + "nodeType": "ParameterList", + "parameters": [], + "src": "3912:0:8" + }, + "scope": 1844, + "src": "3846:161:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1769, + "nodeType": "Block", + "src": "4705:878:8", + "statements": [ + { + "assignments": [ + 1719 + ], + "declarations": [ + { + "constant": false, + "id": 1719, + "mutability": "mutable", + "name": "lastTokenIndex", + "nameLocation": "4894:14:8", + "nodeType": "VariableDeclaration", + "scope": 1769, + "src": "4886:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4886:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1723, + "initialValue": { + "arguments": [ + { + "id": 1721, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1713, + "src": "4921:4:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1720, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 445, + "src": "4911:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4911:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4886:40:8" + }, + { + "assignments": [ + 1725 + ], + "declarations": [ + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "tokenIndex", + "nameLocation": "4944:10:8", + "nodeType": "VariableDeclaration", + "scope": 1769, + "src": "4936:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4936:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1729, + "initialValue": { + "baseExpression": { + "id": 1726, + "name": "_ownedTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "4957:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1728, + "indexExpression": { + "id": 1727, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "4975:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4957:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4936:47:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1730, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "5087:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1731, + "name": "lastTokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1719, + "src": "5101:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5087:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1756, + "nodeType": "IfStatement", + "src": "5083:323:8", + "trueBody": { + "id": 1755, + "nodeType": "Block", + "src": "5117:289:8", + "statements": [ + { + "assignments": [ + 1734 + ], + "declarations": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "lastTokenId", + "nameLocation": "5139:11:8", + "nodeType": "VariableDeclaration", + "scope": 1755, + "src": "5131:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5131:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1740, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 1735, + "name": "_ownedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "5153:12:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 1737, + "indexExpression": { + "id": 1736, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1713, + "src": "5166:4:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5153:18:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1739, + "indexExpression": { + "id": 1738, + "name": "lastTokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1719, + "src": "5172:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5153:34:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5131:56:8" + }, + { + "expression": { + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1741, + "name": "_ownedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "5202:12:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 1744, + "indexExpression": { + "id": 1742, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1713, + "src": "5215:4:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5202:18:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1745, + "indexExpression": { + "id": 1743, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "5221:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5202:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1746, + "name": "lastTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "5235:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5202:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1748, + "nodeType": "ExpressionStatement", + "src": "5202:44:8" + }, + { + "expression": { + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1749, + "name": "_ownedTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "5318:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1751, + "indexExpression": { + "id": 1750, + "name": "lastTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "5336:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5318:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1752, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "5351:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5318:43:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1754, + "nodeType": "ExpressionStatement", + "src": "5318:43:8" + } + ] + } + }, + { + "expression": { + "id": 1760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5492:33:8", + "subExpression": { + "baseExpression": { + "id": 1757, + "name": "_ownedTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "5499:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1759, + "indexExpression": { + "id": 1758, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "5517:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5499:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1761, + "nodeType": "ExpressionStatement", + "src": "5492:33:8" + }, + { + "expression": { + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5535:41:8", + "subExpression": { + "baseExpression": { + "baseExpression": { + "id": 1762, + "name": "_ownedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "5542:12:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(uint256 => uint256))" + } + }, + "id": 1764, + "indexExpression": { + "id": 1763, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1713, + "src": "5555:4:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5542:18:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1766, + "indexExpression": { + "id": 1765, + "name": "lastTokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1719, + "src": "5561:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5542:34:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1768, + "nodeType": "ExpressionStatement", + "src": "5535:41:8" + } + ] + }, + "documentation": { + "id": 1711, + "nodeType": "StructuredDocumentation", + "src": "4013:606:8", + "text": " @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n This has O(1) time complexity, but alters the order of the _ownedTokens array.\n @param from address representing the previous owner of the given token ID\n @param tokenId uint256 ID of the token to be removed from the tokens list of the given address" + }, + "id": 1770, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_removeTokenFromOwnerEnumeration", + "nameLocation": "4633:32:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "from", + "nameLocation": "4674:4:8", + "nodeType": "VariableDeclaration", + "scope": 1770, + "src": "4666:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4666:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4688:7:8", + "nodeType": "VariableDeclaration", + "scope": 1770, + "src": "4680:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4680:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4665:31:8" + }, + "returnParameters": { + "id": 1717, + "nodeType": "ParameterList", + "parameters": [], + "src": "4705:0:8" + }, + "scope": 1844, + "src": "4624:959:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1817, + "nodeType": "Block", + "src": "5942:990:8", + "statements": [ + { + "assignments": [ + 1777 + ], + "declarations": [ + { + "constant": false, + "id": 1777, + "mutability": "mutable", + "name": "lastTokenIndex", + "nameLocation": "6128:14:8", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "6120:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6120:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1782, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1778, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "6145:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6156:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6145:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6165:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6145:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6120:46:8" + }, + { + "assignments": [ + 1784 + ], + "declarations": [ + { + "constant": false, + "id": 1784, + "mutability": "mutable", + "name": "tokenIndex", + "nameLocation": "6184:10:8", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "6176:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6176:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1788, + "initialValue": { + "baseExpression": { + "id": 1785, + "name": "_allTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1490, + "src": "6197:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1787, + "indexExpression": { + "id": 1786, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "6213:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6197:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6176:45:8" + }, + { + "assignments": [ + 1790 + ], + "declarations": [ + { + "constant": false, + "id": 1790, + "mutability": "mutable", + "name": "lastTokenId", + "nameLocation": "6551:11:8", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "6543:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1789, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6543:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1794, + "initialValue": { + "baseExpression": { + "id": 1791, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "6565:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1793, + "indexExpression": { + "id": 1792, + "name": "lastTokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1777, + "src": "6576:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6565:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6543:48:8" + }, + { + "expression": { + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1795, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "6602:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1797, + "indexExpression": { + "id": 1796, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1784, + "src": "6613:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6602:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1798, + "name": "lastTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "6627:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6602:36:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1800, + "nodeType": "ExpressionStatement", + "src": "6602:36:8" + }, + { + "expression": { + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1801, + "name": "_allTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1490, + "src": "6706:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1803, + "indexExpression": { + "id": 1802, + "name": "lastTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "6722:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6706:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1804, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1784, + "src": "6737:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6706:41:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1806, + "nodeType": "ExpressionStatement", + "src": "6706:41:8" + }, + { + "expression": { + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "6868:31:8", + "subExpression": { + "baseExpression": { + "id": 1807, + "name": "_allTokensIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1490, + "src": "6875:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1809, + "indexExpression": { + "id": 1808, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "6891:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6875:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1811, + "nodeType": "ExpressionStatement", + "src": "6868:31:8" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1812, + "name": "_allTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "6909:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6920:3:8", + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "6909:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$", + "typeString": "function (uint256[] storage pointer)" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6909:16:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1816, + "nodeType": "ExpressionStatement", + "src": "6909:16:8" + } + ] + }, + "documentation": { + "id": 1771, + "nodeType": "StructuredDocumentation", + "src": "5589:277:8", + "text": " @dev Private function to remove a token from this extension's token tracking data structures.\n This has O(1) time complexity, but alters the order of the _allTokens array.\n @param tokenId uint256 ID of the token to be removed from the tokens list" + }, + "id": 1818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_removeTokenFromAllTokensEnumeration", + "nameLocation": "5880:36:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1774, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1773, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5925:7:8", + "nodeType": "VariableDeclaration", + "scope": 1818, + "src": "5917:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5917:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5916:17:8" + }, + "returnParameters": { + "id": 1775, + "nodeType": "ParameterList", + "parameters": [], + "src": "5942:0:8" + }, + "scope": 1844, + "src": "5871:1061:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "baseFunctions": [ + 792 + ], + "body": { + "id": 1842, + "nodeType": "Block", + "src": "7134:149:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 1829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1827, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "7148:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7157:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7148:10:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1834, + "nodeType": "IfStatement", + "src": "7144:84:8", + "trueBody": { + "id": 1833, + "nodeType": "Block", + "src": "7160:68:8", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1830, + "name": "ERC721EnumerableForbiddenBatchMint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1500, + "src": "7181:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7181:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1832, + "nodeType": "RevertStatement", + "src": "7174:43:8" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1838, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "7260:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1839, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "7269:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + ], + "expression": { + "id": 1835, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "7237:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721Enumerable_$1844_$", + "typeString": "type(contract super ERC721Enumerable)" + } + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7243:16:8", + "memberName": "_increaseBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "7237:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$", + "typeString": "function (address,uint128)" + } + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7237:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1841, + "nodeType": "ExpressionStatement", + "src": "7237:39:8" + } + ] + }, + "documentation": { + "id": 1819, + "nodeType": "StructuredDocumentation", + "src": "6938:106:8", + "text": " See {ERC721-_increaseBalance}. We need that to account tokens that were minted in batch" + }, + "id": 1843, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_increaseBalance", + "nameLocation": "7058:16:8", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1825, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7125:8:8" + }, + "parameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "account", + "nameLocation": "7083:7:8", + "nodeType": "VariableDeclaration", + "scope": 1843, + "src": "7075:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1820, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7075:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "amount", + "nameLocation": "7100:6:8", + "nodeType": "VariableDeclaration", + "scope": 1843, + "src": "7092:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 1822, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "7092:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "7074:33:8" + }, + "returnParameters": { + "id": 1826, + "nodeType": "ParameterList", + "parameters": [], + "src": "7134:0:8" + }, + "scope": 1844, + "src": "7049:234:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1845, + "src": "708:6577:8", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268, + 1497, + 1500 + ], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "128:7158:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "exportedSymbols": { + "ERC721": [ + 1325 + ], + "ERC721URIStorage": [ + 1970 + ], + "IERC165": [ + 2351 + ], + "IERC4906": [ + 175 + ], + "Strings": [ + 2315 + ] + }, + "id": 1971, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1846, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "128:24:9" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "../ERC721.sol", + "id": 1848, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1971, + "sourceUnit": 1326, + "src": "154:37:9", + "symbolAliases": [ + { + "foreign": { + "id": 1847, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1325, + "src": "162:6:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../../utils/Strings.sol", + "id": 1850, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1971, + "sourceUnit": 2316, + "src": "192:51:9", + "symbolAliases": [ + { + "foreign": { + "id": 1849, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2315, + "src": "200:7:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC4906.sol", + "file": "../../../interfaces/IERC4906.sol", + "id": 1852, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1971, + "sourceUnit": 176, + "src": "244:58:9", + "symbolAliases": [ + { + "foreign": { + "id": 1851, + "name": "IERC4906", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 175, + "src": "252:8:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "file": "../../../interfaces/IERC165.sol", + "id": 1854, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1971, + "sourceUnit": 152, + "src": "303:56:9", + "symbolAliases": [ + { + "foreign": { + "id": 1853, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "311:7:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1856, + "name": "IERC4906", + "nameLocations": [ + "469:8:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "469:8:9" + }, + "id": 1857, + "nodeType": "InheritanceSpecifier", + "src": "469:8:9" + }, + { + "baseName": { + "id": 1858, + "name": "ERC721", + "nameLocations": [ + "479:6:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "479:6:9" + }, + "id": 1859, + "nodeType": "InheritanceSpecifier", + "src": "479:6:9" + } + ], + "canonicalName": "ERC721URIStorage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1855, + "nodeType": "StructuredDocumentation", + "src": "361:69:9", + "text": " @dev ERC721 token with storage based token URI management." + }, + "fullyImplemented": true, + "id": 1970, + "linearizedBaseContracts": [ + 1970, + 1325, + 269, + 2030, + 175, + 1442, + 2339, + 2351, + 2060 + ], + "name": "ERC721URIStorage", + "nameLocation": "449:16:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1862, + "libraryName": { + "id": 1860, + "name": "Strings", + "nameLocations": [ + "498:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2315, + "src": "498:7:9" + }, + "nodeType": "UsingForDirective", + "src": "492:26:9", + "typeName": { + "id": 1861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1868, + "mutability": "constant", + "name": "ERC4906_INTERFACE_ID", + "nameLocation": "730:20:9", + "nodeType": "VariableDeclaration", + "scope": 1970, + "src": "706:65:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1863, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "706:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "arguments": [ + { + "hexValue": "30783439303634393036", + "id": 1866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "760:10:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1225148678_by_1", + "typeString": "int_const 1225148678" + }, + "value": "0x49064906" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1225148678_by_1", + "typeString": "int_const 1225148678" + } + ], + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "753:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 1864, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "753:6:9", + "typeDescriptions": {} + } + }, + "id": 1867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "753:18:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1872, + "mutability": "mutable", + "name": "_tokenURIs", + "nameLocation": "860:10:9", + "nodeType": "VariableDeclaration", + "scope": 1970, + "src": "817:53:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 1871, + "keyName": "tokenId", + "keyNameLocation": "833:7:9", + "keyType": { + "id": 1869, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "825:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "817:34:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1870, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "844:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "baseFunctions": [ + 417, + 2350 + ], + "body": { + "id": 1892, + "nodeType": "Block", + "src": "1045:99:9", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1883, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "1062:11:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1884, + "name": "ERC4906_INTERFACE_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "1077:20:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1062:35:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1888, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "1125:11:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1886, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "1101:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$1970_$", + "typeString": "type(contract super ERC721URIStorage)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1107:17:9", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 417, + "src": "1101:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1101:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1062:75:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1882, + "id": 1891, + "nodeType": "Return", + "src": "1055:82:9" + } + ] + }, + "documentation": { + "id": 1873, + "nodeType": "StructuredDocumentation", + "src": "877:55:9", + "text": " @dev See {IERC165-supportsInterface}" + }, + "functionSelector": "01ffc9a7", + "id": 1893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "946:17:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1879, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1877, + "name": "ERC721", + "nameLocations": [ + "1013:6:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1013:6:9" + }, + { + "id": 1878, + "name": "IERC165", + "nameLocations": [ + "1021:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2351, + "src": "1021:7:9" + } + ], + "src": "1004:25:9" + }, + "parameters": { + "id": 1876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1875, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "971:11:9", + "nodeType": "VariableDeclaration", + "scope": 1893, + "src": "964:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1874, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "964:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "963:20:9" + }, + "returnParameters": { + "id": 1882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1881, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1893, + "src": "1039:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1880, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1039:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1038:6:9" + }, + "scope": 1970, + "src": "937:207:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 512 + ], + "body": { + "id": 1949, + "nodeType": "Block", + "src": "1298:505:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1903, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1896, + "src": "1322:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1902, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "1308:13:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1308:22:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1905, + "nodeType": "ExpressionStatement", + "src": "1308:22:9" + }, + { + "assignments": [ + 1907 + ], + "declarations": [ + { + "constant": false, + "id": 1907, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "1355:9:9", + "nodeType": "VariableDeclaration", + "scope": 1949, + "src": "1341:23:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1906, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1341:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1911, + "initialValue": { + "baseExpression": { + "id": 1908, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "1367:10:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1910, + "indexExpression": { + "id": 1909, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1896, + "src": "1378:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1367:19:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1341:45:9" + }, + { + "assignments": [ + 1913 + ], + "declarations": [ + { + "constant": false, + "id": 1913, + "mutability": "mutable", + "name": "base", + "nameLocation": "1410:4:9", + "nodeType": "VariableDeclaration", + "scope": 1949, + "src": "1396:18:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1912, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1916, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1914, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "1417:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1417:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1396:31:9" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1919, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1913, + "src": "1506:4:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1500:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1917, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1500:5:9", + "typeDescriptions": {} + } + }, + "id": 1920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1500:11:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1512:6:9", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1500:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1522:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1500:23:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1927, + "nodeType": "IfStatement", + "src": "1496:70:9", + "trueBody": { + "id": 1926, + "nodeType": "Block", + "src": "1525:41:9", + "statements": [ + { + "expression": { + "id": 1924, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1907, + "src": "1546:9:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1901, + "id": 1925, + "nodeType": "Return", + "src": "1539:16:9" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1930, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1907, + "src": "1671:9:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1665:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1928, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1665:5:9", + "typeDescriptions": {} + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1665:16:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1682:6:9", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1665:23:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1691:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1665:27:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1943, + "nodeType": "IfStatement", + "src": "1661:95:9", + "trueBody": { + "id": 1942, + "nodeType": "Block", + "src": "1694:62:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1938, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1913, + "src": "1729:4:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 1939, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1907, + "src": "1735:9:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1715:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1935, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1715:6:9", + "typeDescriptions": {} + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1722:6:9", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1715:13:9", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 1940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1715:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1901, + "id": 1941, + "nodeType": "Return", + "src": "1708:37:9" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1946, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1896, + "src": "1788:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1944, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "1773:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$1970_$", + "typeString": "type(contract super ERC721URIStorage)" + } + }, + "id": 1945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1779:8:9", + "memberName": "tokenURI", + "nodeType": "MemberAccess", + "referencedDeclaration": 512, + "src": "1773:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) view returns (string memory)" + } + }, + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1773:23:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1901, + "id": 1948, + "nodeType": "Return", + "src": "1766:30:9" + } + ] + }, + "documentation": { + "id": 1894, + "nodeType": "StructuredDocumentation", + "src": "1150:55:9", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 1950, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "1219:8:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1265:8:9" + }, + "parameters": { + "id": 1897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1896, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1236:7:9", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "1228:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1228:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1227:17:9" + }, + "returnParameters": { + "id": 1901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1900, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "1283:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1899, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1283:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1282:15:9" + }, + "scope": 1970, + "src": "1210:593:9", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1968, + "nodeType": "Block", + "src": "2003:86:9", + "statements": [ + { + "expression": { + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1958, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "2013:10:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1960, + "indexExpression": { + "id": 1959, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1953, + "src": "2024:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2013:19:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1961, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1955, + "src": "2035:9:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2013:31:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1963, + "nodeType": "ExpressionStatement", + "src": "2013:31:9" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1965, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1953, + "src": "2074:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1964, + "name": "MetadataUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2059:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2059:23:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1967, + "nodeType": "EmitStatement", + "src": "2054:28:9" + } + ] + }, + "documentation": { + "id": 1951, + "nodeType": "StructuredDocumentation", + "src": "1809:108:9", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Emits {MetadataUpdate}." + }, + "id": 1969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nameLocation": "1931:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1953, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1952:7:9", + "nodeType": "VariableDeclaration", + "scope": 1969, + "src": "1944:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1944:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1955, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "1975:9:9", + "nodeType": "VariableDeclaration", + "scope": 1969, + "src": "1961:23:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1961:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1943:42:9" + }, + "returnParameters": { + "id": 1957, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:9" + }, + "scope": 1970, + "src": "1922:167:9", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1971, + "src": "431:1660:9", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 167, + 174, + 1341, + 1350, + 1359 + ] + } + ], + "src": "128:1964:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol", + "exportedSymbols": { + "IERC721": [ + 1442 + ], + "IERC721Enumerable": [ + 2002 + ] + }, + "id": 2003, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1972, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "129:24:10" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../IERC721.sol", + "id": 1974, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2003, + "sourceUnit": 1443, + "src": "155:39:10", + "symbolAliases": [ + { + "foreign": { + "id": 1973, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "163:7:10", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1976, + "name": "IERC721", + "nameLocations": [ + "364:7:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "364:7:10" + }, + "id": 1977, + "nodeType": "InheritanceSpecifier", + "src": "364:7:10" + } + ], + "canonicalName": "IERC721Enumerable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1975, + "nodeType": "StructuredDocumentation", + "src": "196:136:10", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 2002, + "linearizedBaseContracts": [ + 2002, + 1442, + 2351 + ], + "name": "IERC721Enumerable", + "nameLocation": "343:17:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1978, + "nodeType": "StructuredDocumentation", + "src": "378:82:10", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 1983, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "474:11:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1979, + "nodeType": "ParameterList", + "parameters": [], + "src": "485:2:10" + }, + "returnParameters": { + "id": 1982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1983, + "src": "511:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "511:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "510:9:10" + }, + "scope": 2002, + "src": "465:55:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1984, + "nodeType": "StructuredDocumentation", + "src": "526:171:10", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 1993, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nameLocation": "711:19:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1986, + "mutability": "mutable", + "name": "owner", + "nameLocation": "739:5:10", + "nodeType": "VariableDeclaration", + "scope": 1993, + "src": "731:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "731:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1988, + "mutability": "mutable", + "name": "index", + "nameLocation": "754:5:10", + "nodeType": "VariableDeclaration", + "scope": 1993, + "src": "746:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "746:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "730:30:10" + }, + "returnParameters": { + "id": 1992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1991, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1993, + "src": "784:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "784:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "783:9:10" + }, + "scope": 2002, + "src": "702:91:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1994, + "nodeType": "StructuredDocumentation", + "src": "799:164:10", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 2001, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nameLocation": "977:12:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1996, + "mutability": "mutable", + "name": "index", + "nameLocation": "998:5:10", + "nodeType": "VariableDeclaration", + "scope": 2001, + "src": "990:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "990:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "989:15:10" + }, + "returnParameters": { + "id": 2000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1999, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2001, + "src": "1028:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1998, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1028:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1027:9:10" + }, + "scope": 2002, + "src": "968:69:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2003, + "src": "333:706:10", + "usedErrors": [], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "129:911:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "exportedSymbols": { + "IERC721": [ + 1442 + ], + "IERC721Metadata": [ + 2030 + ] + }, + "id": 2031, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2004, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "127:24:11" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../IERC721.sol", + "id": 2006, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2031, + "sourceUnit": 1443, + "src": "153:39:11", + "symbolAliases": [ + { + "foreign": { + "id": 2005, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "161:7:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2008, + "name": "IERC721", + "nameLocations": [ + "357:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "357:7:11" + }, + "id": 2009, + "nodeType": "InheritanceSpecifier", + "src": "357:7:11" + } + ], + "canonicalName": "IERC721Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2007, + "nodeType": "StructuredDocumentation", + "src": "194:133:11", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 2030, + "linearizedBaseContracts": [ + 2030, + 1442, + 2351 + ], + "name": "IERC721Metadata", + "nameLocation": "338:15:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2010, + "nodeType": "StructuredDocumentation", + "src": "371:58:11", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 2015, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "443:4:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2011, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:11" + }, + "returnParameters": { + "id": 2014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2013, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2015, + "src": "473:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2012, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "473:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "472:15:11" + }, + "scope": 2030, + "src": "434:54:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2016, + "nodeType": "StructuredDocumentation", + "src": "494:60:11", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 2021, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "568:6:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2017, + "nodeType": "ParameterList", + "parameters": [], + "src": "574:2:11" + }, + "returnParameters": { + "id": 2020, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2021, + "src": "600:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2018, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "600:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "599:15:11" + }, + "scope": 2030, + "src": "559:56:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2022, + "nodeType": "StructuredDocumentation", + "src": "621:90:11", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 2029, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "725:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2024, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "742:7:11", + "nodeType": "VariableDeclaration", + "scope": 2029, + "src": "734:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "733:17:11" + }, + "returnParameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2027, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2029, + "src": "774:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2026, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "774:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "773:15:11" + }, + "scope": 2030, + "src": "716:73:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2031, + "src": "328:463:11", + "usedErrors": [], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "127:665:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 2060 + ] + }, + "id": 2061, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2032, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:12" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2033, + "nodeType": "StructuredDocumentation", + "src": "127:496:12", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 2060, + "linearizedBaseContracts": [ + 2060 + ], + "name": "Context", + "nameLocation": "642:7:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2041, + "nodeType": "Block", + "src": "718:34:12", + "statements": [ + { + "expression": { + "expression": { + "id": 2038, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "735:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:12", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2037, + "id": 2040, + "nodeType": "Return", + "src": "728:17:12" + } + ] + }, + "id": 2042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2034, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:12" + }, + "returnParameters": { + "id": 2037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2036, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2042, + "src": "709:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:12" + }, + "scope": 2060, + "src": "656:96:12", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2050, + "nodeType": "Block", + "src": "825:32:12", + "statements": [ + { + "expression": { + "expression": { + "id": 2047, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "842:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:12", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 2046, + "id": 2049, + "nodeType": "Return", + "src": "835:15:12" + } + ] + }, + "id": 2051, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2043, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:12" + }, + "returnParameters": { + "id": 2046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2045, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2051, + "src": "809:14:12", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2044, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:12" + }, + "scope": 2060, + "src": "758:99:12", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2058, + "nodeType": "Block", + "src": "935:25:12", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2055, + "id": 2057, + "nodeType": "Return", + "src": "945:8:12" + } + ] + }, + "id": 2059, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2052, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:12" + }, + "returnParameters": { + "id": 2055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2054, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2059, + "src": "926:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:12" + }, + "scope": 2060, + "src": "863:97:12", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 2061, + "src": "624:338:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 3405 + ], + "SignedMath": [ + 3510 + ], + "Strings": [ + 2315 + ] + }, + "id": 2316, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2062, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 2064, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2316, + "sourceUnit": 3406, + "src": "127:37:13", + "symbolAliases": [ + { + "foreign": { + "id": 2063, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "135:4:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 2066, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2316, + "sourceUnit": 3511, + "src": "165:49:13", + "symbolAliases": [ + { + "foreign": { + "id": 2065, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "173:10:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2067, + "nodeType": "StructuredDocumentation", + "src": "216:34:13", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2315, + "linearizedBaseContracts": [ + 2315 + ], + "name": "Strings", + "nameLocation": "259:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2070, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "298:10:13", + "nodeType": "VariableDeclaration", + "scope": 2315, + "src": "273:56:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 2068, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "273:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:18:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2073, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "358:14:13", + "nodeType": "VariableDeclaration", + "scope": 2315, + "src": "335:42:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2071, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "335:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 2072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:2:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 2074, + "nodeType": "StructuredDocumentation", + "src": "384:81:13", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 2080, + "name": "StringsInsufficientHexLength", + "nameLocation": "476:28:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2079, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2076, + "mutability": "mutable", + "name": "value", + "nameLocation": "513:5:13", + "nodeType": "VariableDeclaration", + "scope": 2080, + "src": "505:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "505:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2078, + "mutability": "mutable", + "name": "length", + "nameLocation": "528:6:13", + "nodeType": "VariableDeclaration", + "scope": 2080, + "src": "520:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2077, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "504:31:13" + }, + "src": "470:66:13" + }, + { + "body": { + "id": 2127, + "nodeType": "Block", + "src": "708:627:13", + "statements": [ + { + "id": 2126, + "nodeType": "UncheckedBlock", + "src": "718:611:13", + "statements": [ + { + "assignments": [ + 2089 + ], + "declarations": [ + { + "constant": false, + "id": 2089, + "mutability": "mutable", + "name": "length", + "nameLocation": "750:6:13", + "nodeType": "VariableDeclaration", + "scope": 2126, + "src": "742:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2096, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2092, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2083, + "src": "770:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2090, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "759:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3405_$", + "typeString": "type(library Math)" + } + }, + "id": 2091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "764:5:13", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 3225, + "src": "759:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "759:17:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "779:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "759:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "742:38:13" + }, + { + "assignments": [ + 2098 + ], + "declarations": [ + { + "constant": false, + "id": 2098, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "808:6:13", + "nodeType": "VariableDeclaration", + "scope": 2126, + "src": "794:20:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2097, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "794:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2103, + "initialValue": { + "arguments": [ + { + "id": 2101, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2089, + "src": "828:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "817:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 2099, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "821:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 2102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "817:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "794:41:13" + }, + { + "assignments": [ + 2105 + ], + "declarations": [ + { + "constant": false, + "id": 2105, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "857:3:13", + "nodeType": "VariableDeclaration", + "scope": 2126, + "src": "849:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "849:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2106, + "nodeType": "VariableDeclarationStatement", + "src": "849:11:13" + }, + { + "AST": { + "nativeSrc": "930:67:13", + "nodeType": "YulBlock", + "src": "930:67:13", + "statements": [ + { + "nativeSrc": "948:35:13", + "nodeType": "YulAssignment", + "src": "948:35:13", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "959:6:13", + "nodeType": "YulIdentifier", + "src": "959:6:13" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "971:2:13", + "nodeType": "YulLiteral", + "src": "971:2:13", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "975:6:13", + "nodeType": "YulIdentifier", + "src": "975:6:13" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "967:3:13", + "nodeType": "YulIdentifier", + "src": "967:3:13" + }, + "nativeSrc": "967:15:13", + "nodeType": "YulFunctionCall", + "src": "967:15:13" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "955:3:13", + "nodeType": "YulIdentifier", + "src": "955:3:13" + }, + "nativeSrc": "955:28:13", + "nodeType": "YulFunctionCall", + "src": "955:28:13" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "948:3:13", + "nodeType": "YulIdentifier", + "src": "948:3:13" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2098, + "isOffset": false, + "isSlot": false, + "src": "959:6:13", + "valueSize": 1 + }, + { + "declaration": 2089, + "isOffset": false, + "isSlot": false, + "src": "975:6:13", + "valueSize": 1 + }, + { + "declaration": 2105, + "isOffset": false, + "isSlot": false, + "src": "948:3:13", + "valueSize": 1 + } + ], + "id": 2107, + "nodeType": "InlineAssembly", + "src": "921:76:13" + }, + { + "body": { + "id": 2122, + "nodeType": "Block", + "src": "1023:269:13", + "statements": [ + { + "expression": { + "id": 2110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1041:5:13", + "subExpression": { + "id": 2109, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2105, + "src": "1041:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2111, + "nodeType": "ExpressionStatement", + "src": "1041:5:13" + }, + { + "AST": { + "nativeSrc": "1124:86:13", + "nodeType": "YulBlock", + "src": "1124:86:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1154:3:13", + "nodeType": "YulIdentifier", + "src": "1154:3:13" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:13", + "nodeType": "YulIdentifier", + "src": "1168:5:13" + }, + { + "kind": "number", + "nativeSrc": "1175:2:13", + "nodeType": "YulLiteral", + "src": "1175:2:13", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1164:3:13", + "nodeType": "YulIdentifier", + "src": "1164:3:13" + }, + "nativeSrc": "1164:14:13", + "nodeType": "YulFunctionCall", + "src": "1164:14:13" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1180:10:13", + "nodeType": "YulIdentifier", + "src": "1180:10:13" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1159:4:13", + "nodeType": "YulIdentifier", + "src": "1159:4:13" + }, + "nativeSrc": "1159:32:13", + "nodeType": "YulFunctionCall", + "src": "1159:32:13" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1146:7:13", + "nodeType": "YulIdentifier", + "src": "1146:7:13" + }, + "nativeSrc": "1146:46:13", + "nodeType": "YulFunctionCall", + "src": "1146:46:13" + }, + "nativeSrc": "1146:46:13", + "nodeType": "YulExpressionStatement", + "src": "1146:46:13" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2070, + "isOffset": false, + "isSlot": false, + "src": "1180:10:13", + "valueSize": 1 + }, + { + "declaration": 2105, + "isOffset": false, + "isSlot": false, + "src": "1154:3:13", + "valueSize": 1 + }, + { + "declaration": 2083, + "isOffset": false, + "isSlot": false, + "src": "1168:5:13", + "valueSize": 1 + } + ], + "id": 2112, + "nodeType": "InlineAssembly", + "src": "1115:95:13" + }, + { + "expression": { + "id": 2115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2113, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2083, + "src": "1227:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1236:2:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1227:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2116, + "nodeType": "ExpressionStatement", + "src": "1227:11:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2117, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2083, + "src": "1260:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1260:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2121, + "nodeType": "IfStatement", + "src": "1256:21:13", + "trueBody": { + "id": 2120, + "nodeType": "Break", + "src": "1272:5:13" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 2108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1017:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 2123, + "nodeType": "WhileStatement", + "src": "1010:282:13" + }, + { + "expression": { + "id": 2124, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2098, + "src": "1312:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2087, + "id": 2125, + "nodeType": "Return", + "src": "1305:13:13" + } + ] + } + ] + }, + "documentation": { + "id": 2081, + "nodeType": "StructuredDocumentation", + "src": "542:90:13", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 2128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "646:8:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2083, + "mutability": "mutable", + "name": "value", + "nameLocation": "663:5:13", + "nodeType": "VariableDeclaration", + "scope": 2128, + "src": "655:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "655:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "654:15:13" + }, + "returnParameters": { + "id": 2087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2086, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2128, + "src": "693:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2085, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "693:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "692:15:13" + }, + "scope": 2315, + "src": "637:698:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2153, + "nodeType": "Block", + "src": "1511:92:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 2141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2139, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "1542:5:13", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 2140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1550:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1542:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1560:2:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1542:20:13", + "trueExpression": { + "hexValue": "2d", + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1554:3:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2148, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "1588:5:13", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 2146, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "1573:10:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$3510_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 2147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1584:3:13", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 3509, + "src": "1573:14:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 2149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1573:21:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2145, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2128, + "src": "1564:8:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1564:31:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1528:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2136, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:13", + "typeDescriptions": {} + } + }, + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1535:6:13", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1528:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 2151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1528:68:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2135, + "id": 2152, + "nodeType": "Return", + "src": "1521:75:13" + } + ] + }, + "documentation": { + "id": 2129, + "nodeType": "StructuredDocumentation", + "src": "1341:89:13", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 2154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "1444:14:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2131, + "mutability": "mutable", + "name": "value", + "nameLocation": "1466:5:13", + "nodeType": "VariableDeclaration", + "scope": 2154, + "src": "1459:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2130, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1459:6:13", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1458:14:13" + }, + "returnParameters": { + "id": 2135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2134, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2154, + "src": "1496:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2133, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1496:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1495:15:13" + }, + "scope": 2315, + "src": "1435:168:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2173, + "nodeType": "Block", + "src": "1782:100:13", + "statements": [ + { + "id": 2172, + "nodeType": "UncheckedBlock", + "src": "1792:84:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2163, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2157, + "src": "1835:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2166, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2157, + "src": "1854:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2164, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "1842:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3405_$", + "typeString": "type(library Math)" + } + }, + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1847:6:13", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 3347, + "src": "1842:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1842:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1863:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1842:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2162, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2174, + 2257, + 2277 + ], + "referencedDeclaration": 2257, + "src": "1823:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1823:42:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2161, + "id": 2171, + "nodeType": "Return", + "src": "1816:49:13" + } + ] + } + ] + }, + "documentation": { + "id": 2155, + "nodeType": "StructuredDocumentation", + "src": "1609:94:13", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 2174, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1717:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2157, + "mutability": "mutable", + "name": "value", + "nameLocation": "1737:5:13", + "nodeType": "VariableDeclaration", + "scope": 2174, + "src": "1729:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1728:15:13" + }, + "returnParameters": { + "id": 2161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2160, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2174, + "src": "1767:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2159, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1767:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1766:15:13" + }, + "scope": 2315, + "src": "1708:174:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2256, + "nodeType": "Block", + "src": "2095:435:13", + "statements": [ + { + "assignments": [ + 2185 + ], + "declarations": [ + { + "constant": false, + "id": 2185, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2113:10:13", + "nodeType": "VariableDeclaration", + "scope": 2256, + "src": "2105:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2105:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2187, + "initialValue": { + "id": 2186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2177, + "src": "2126:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2105:26:13" + }, + { + "assignments": [ + 2189 + ], + "declarations": [ + { + "constant": false, + "id": 2189, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2154:6:13", + "nodeType": "VariableDeclaration", + "scope": 2256, + "src": "2141:19:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2188, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2141:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2198, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2193, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2179, + "src": "2177:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2173:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2186:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2173:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2163:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2190, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2167:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2163:25:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2141:47:13" + }, + { + "expression": { + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2199, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2198:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2201, + "indexExpression": { + "hexValue": "30", + "id": 2200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2205:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2198:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2210:3:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2198:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2204, + "nodeType": "ExpressionStatement", + "src": "2198:15:13" + }, + { + "expression": { + "id": 2209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2205, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2223:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2207, + "indexExpression": { + "hexValue": "31", + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2230:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2223:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 2208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2235:3:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2223:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2210, + "nodeType": "ExpressionStatement", + "src": "2223:15:13" + }, + { + "body": { + "id": 2239, + "nodeType": "Block", + "src": "2293:95:13", + "statements": [ + { + "expression": { + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2225, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2307:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2227, + "indexExpression": { + "id": 2226, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "2314:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2307:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 2228, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2070, + "src": "2319:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 2232, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2229, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2185, + "src": "2330:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2343:3:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2330:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2319:28:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2307:40:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2234, + "nodeType": "ExpressionStatement", + "src": "2307:40:13" + }, + { + "expression": { + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2235, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2185, + "src": "2361:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2376:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2361:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2238, + "nodeType": "ExpressionStatement", + "src": "2361:16:13" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2219, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "2281:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 2220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2285:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2281:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2240, + "initializationExpression": { + "assignments": [ + 2212 + ], + "declarations": [ + { + "constant": false, + "id": 2212, + "mutability": "mutable", + "name": "i", + "nameLocation": "2261:1:13", + "nodeType": "VariableDeclaration", + "scope": 2240, + "src": "2253:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2218, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2265:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2214, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2179, + "src": "2269:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2265:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2278:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2265:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2253:26:13" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2288:3:13", + "subExpression": { + "id": 2222, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "2290:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "2288:3:13" + }, + "nodeType": "ForStatement", + "src": "2248:140:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2241, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2185, + "src": "2401:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2401:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2250, + "nodeType": "IfStatement", + "src": "2397:96:13", + "trueBody": { + "id": 2249, + "nodeType": "Block", + "src": "2418:75:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2245, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2177, + "src": "2468:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2246, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2179, + "src": "2475:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2244, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2080, + "src": "2439:28:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2439:43:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2248, + "nodeType": "RevertStatement", + "src": "2432:50:13" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2253, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2516:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2509:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2251, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2509:6:13", + "typeDescriptions": {} + } + }, + "id": 2254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2509:14:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2183, + "id": 2255, + "nodeType": "Return", + "src": "2502:21:13" + } + ] + }, + "documentation": { + "id": 2175, + "nodeType": "StructuredDocumentation", + "src": "1888:112:13", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 2257, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2014:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2180, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2177, + "mutability": "mutable", + "name": "value", + "nameLocation": "2034:5:13", + "nodeType": "VariableDeclaration", + "scope": 2257, + "src": "2026:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2026:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2179, + "mutability": "mutable", + "name": "length", + "nameLocation": "2049:6:13", + "nodeType": "VariableDeclaration", + "scope": 2257, + "src": "2041:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2041:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:31:13" + }, + "returnParameters": { + "id": 2183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2257, + "src": "2080:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2181, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2080:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2079:15:13" + }, + "scope": 2315, + "src": "2005:525:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2276, + "nodeType": "Block", + "src": "2762:75:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2270, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2260, + "src": "2807:4:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2799:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2268, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2799:7:13", + "typeDescriptions": {} + } + }, + "id": 2271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2799:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2791:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:13", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2791:22:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2273, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2073, + "src": "2815:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2265, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2174, + 2257, + 2277 + ], + "referencedDeclaration": 2257, + "src": "2779:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2779:51:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2264, + "id": 2275, + "nodeType": "Return", + "src": "2772:58:13" + } + ] + }, + "documentation": { + "id": 2258, + "nodeType": "StructuredDocumentation", + "src": "2536:148:13", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 2277, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2698:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2260, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2718:4:13", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "2710:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2259, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2709:14:13" + }, + "returnParameters": { + "id": 2264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2263, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "2747:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2262, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2747:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2746:15:13" + }, + "scope": 2315, + "src": "2689:148:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2313, + "nodeType": "Block", + "src": "2992:104:13", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2289, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2280, + "src": "3015:1:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3009:5:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2287, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3009:5:13", + "typeDescriptions": {} + } + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3009:8:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3009:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2294, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2282, + "src": "3034:1:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3028:5:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2292, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3028:5:13", + "typeDescriptions": {} + } + }, + "id": 2295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3028:8:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3037:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3028:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3009:34:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2280, + "src": "3063:1:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3057:5:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3057:5:13", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3057:8:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2298, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "3047:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3047:19:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2307, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2282, + "src": "3086:1:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3080:5:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3080:5:13", + "typeDescriptions": {} + } + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3080:8:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2304, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "3070:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3070:19:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3047:42:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3009:80:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2286, + "id": 2312, + "nodeType": "Return", + "src": "3002:87:13" + } + ] + }, + "documentation": { + "id": 2278, + "nodeType": "StructuredDocumentation", + "src": "2843:66:13", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 2314, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "2923:5:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2283, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2280, + "mutability": "mutable", + "name": "a", + "nameLocation": "2943:1:13", + "nodeType": "VariableDeclaration", + "scope": 2314, + "src": "2929:15:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2279, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2929:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2282, + "mutability": "mutable", + "name": "b", + "nameLocation": "2960:1:13", + "nodeType": "VariableDeclaration", + "scope": 2314, + "src": "2946:15:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2281, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2946:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2928:34:13" + }, + "returnParameters": { + "id": 2286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2285, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2314, + "src": "2986:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2284, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2986:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2985:6:13" + }, + "scope": 2315, + "src": "2914:182:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2316, + "src": "251:2847:13", + "usedErrors": [ + 2080 + ], + "usedEvents": [] + } + ], + "src": "101:2998:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 2339 + ], + "IERC165": [ + 2351 + ] + }, + "id": 2340, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2317, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:14" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2319, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2340, + "sourceUnit": 2352, + "src": "140:38:14", + "symbolAliases": [ + { + "foreign": { + "id": 2318, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "148:7:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 2321, + "name": "IERC165", + "nameLocations": [ + "687:7:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2351, + "src": "687:7:14" + }, + "id": 2322, + "nodeType": "InheritanceSpecifier", + "src": "687:7:14" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2320, + "nodeType": "StructuredDocumentation", + "src": "180:478:14", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 2339, + "linearizedBaseContracts": [ + 2339, + 2351 + ], + "name": "ERC165", + "nameLocation": "677:6:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 2350 + ], + "body": { + "id": 2337, + "nodeType": "Block", + "src": "844:64:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 2335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2330, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2325, + "src": "861:11:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2332, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2351, + "src": "881:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2351_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2351_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2331, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "876:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "876:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2351", + "typeString": "type(contract IERC165)" + } + }, + "id": 2334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "890:11:14", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "876:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "861:40:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2329, + "id": 2336, + "nodeType": "Return", + "src": "854:47:14" + } + ] + }, + "documentation": { + "id": 2323, + "nodeType": "StructuredDocumentation", + "src": "701:56:14", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 2338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "771:17:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2325, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "796:11:14", + "nodeType": "VariableDeclaration", + "scope": 2338, + "src": "789:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2324, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "789:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "788:20:14" + }, + "returnParameters": { + "id": 2329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2328, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2338, + "src": "838:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2327, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "837:6:14" + }, + "scope": 2339, + "src": "762:146:14", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 2340, + "src": "659:251:14", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:797:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2351 + ] + }, + "id": 2352, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2341, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2342, + "nodeType": "StructuredDocumentation", + "src": "141:279:15", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 2351, + "linearizedBaseContracts": [ + 2351 + ], + "name": "IERC165", + "nameLocation": "431:7:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2343, + "nodeType": "StructuredDocumentation", + "src": "445:340:15", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 2350, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:15", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "817:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2344, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "817:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "816:20:15" + }, + "returnParameters": { + "id": 2349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "860:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2347, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:15" + }, + "scope": 2351, + "src": "790:76:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2352, + "src": "421:447:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:15" + }, + "id": 15 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 3405 + ] + }, + "id": 3406, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2353, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:16" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2354, + "nodeType": "StructuredDocumentation", + "src": "129:73:16", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3405, + "linearizedBaseContracts": [ + 3405 + ], + "name": "Math", + "nameLocation": "211:4:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2355, + "nodeType": "StructuredDocumentation", + "src": "222:50:16", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 2357, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:16", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2356, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:16" + }, + "src": "277:29:16" + }, + { + "canonicalName": "Math.Rounding", + "id": 2362, + "members": [ + { + "id": 2358, + "name": "Floor", + "nameLocation": "336:5:16", + "nodeType": "EnumValue", + "src": "336:5:16" + }, + { + "id": 2359, + "name": "Ceil", + "nameLocation": "379:4:16", + "nodeType": "EnumValue", + "src": "379:4:16" + }, + { + "id": 2360, + "name": "Trunc", + "nameLocation": "421:5:16", + "nodeType": "EnumValue", + "src": "421:5:16" + }, + { + "id": 2361, + "name": "Expand", + "nameLocation": "451:6:16", + "nodeType": "EnumValue", + "src": "451:6:16" + } + ], + "name": "Rounding", + "nameLocation": "317:8:16", + "nodeType": "EnumDefinition", + "src": "312:169:16" + }, + { + "body": { + "id": 2393, + "nodeType": "Block", + "src": "661:140:16", + "statements": [ + { + "id": 2392, + "nodeType": "UncheckedBlock", + "src": "671:124:16", + "statements": [ + { + "assignments": [ + 2375 + ], + "declarations": [ + { + "constant": false, + "id": 2375, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:16", + "nodeType": "VariableDeclaration", + "scope": 2392, + "src": "695:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2374, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2379, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2376, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2365, + "src": "707:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 2377, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2367, + "src": "711:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2380, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2375, + "src": "730:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2381, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2365, + "src": "734:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2387, + "nodeType": "IfStatement", + "src": "726:28:16", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "745:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "752:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2385, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "744:10:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2373, + "id": 2386, + "nodeType": "Return", + "src": "737:17:16" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2389, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2375, + "src": "782:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2390, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "775:9:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2373, + "id": 2391, + "nodeType": "Return", + "src": "768:16:16" + } + ] + } + ] + }, + "documentation": { + "id": 2363, + "nodeType": "StructuredDocumentation", + "src": "487:93:16", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + }, + "id": 2394, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "594:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2365, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:16", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "601:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2367, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:16", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "612:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:16" + }, + "returnParameters": { + "id": 2373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2370, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "646:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2369, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "646:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "652:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "652:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:15:16" + }, + "scope": 3405, + "src": "585:216:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2421, + "nodeType": "Block", + "src": "984:113:16", + "statements": [ + { + "id": 2420, + "nodeType": "UncheckedBlock", + "src": "994:97:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2406, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2399, + "src": "1022:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2407, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2397, + "src": "1026:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2413, + "nodeType": "IfStatement", + "src": "1018:28:16", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2411, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2405, + "id": 2412, + "nodeType": "Return", + "src": "1029:17:16" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2415, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2397, + "src": "1074:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2416, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2399, + "src": "1078:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2418, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2405, + "id": 2419, + "nodeType": "Return", + "src": "1060:20:16" + } + ] + } + ] + }, + "documentation": { + "id": 2395, + "nodeType": "StructuredDocumentation", + "src": "807:96:16", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + }, + "id": 2422, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "917:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2397, + "mutability": "mutable", + "name": "a", + "nameLocation": "932:1:16", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "924:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "924:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2399, + "mutability": "mutable", + "name": "b", + "nameLocation": "943:1:16", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "935:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2398, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "935:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "923:22:16" + }, + "returnParameters": { + "id": 2405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2402, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "969:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2401, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2404, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "975:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "968:15:16" + }, + "scope": 3405, + "src": "908:189:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2463, + "nodeType": "Block", + "src": "1283:417:16", + "statements": [ + { + "id": 2462, + "nodeType": "UncheckedBlock", + "src": "1293:401:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2434, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "1551:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2441, + "nodeType": "IfStatement", + "src": "1547:28:16", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2439, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2433, + "id": 2440, + "nodeType": "Return", + "src": "1559:16:16" + } + }, + { + "assignments": [ + 2443 + ], + "declarations": [ + { + "constant": false, + "id": 2443, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:16", + "nodeType": "VariableDeclaration", + "scope": 2462, + "src": "1589:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2442, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2447, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2444, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "1601:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2445, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2427, + "src": "1605:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2448, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2443, + "src": "1624:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2449, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "1628:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2451, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2427, + "src": "1633:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2457, + "nodeType": "IfStatement", + "src": "1620:33:16", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2455, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2433, + "id": 2456, + "nodeType": "Return", + "src": "1636:17:16" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1675:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2459, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2443, + "src": "1681:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2460, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1674:9:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2433, + "id": 2461, + "nodeType": "Return", + "src": "1667:16:16" + } + ] + } + ] + }, + "documentation": { + "id": 2423, + "nodeType": "StructuredDocumentation", + "src": "1103:99:16", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + }, + "id": 2464, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1216:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2425, + "mutability": "mutable", + "name": "a", + "nameLocation": "1231:1:16", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1223:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2427, + "mutability": "mutable", + "name": "b", + "nameLocation": "1242:1:16", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1234:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2426, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1222:22:16" + }, + "returnParameters": { + "id": 2433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2430, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1268:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2429, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2432, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "1274:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1267:15:16" + }, + "scope": 3405, + "src": "1207:493:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2491, + "nodeType": "Block", + "src": "1887:114:16", + "statements": [ + { + "id": 2490, + "nodeType": "UncheckedBlock", + "src": "1897:98:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2476, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2469, + "src": "1925:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1930:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1925:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2483, + "nodeType": "IfStatement", + "src": "1921:29:16", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1941:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2481, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1940:10:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2475, + "id": 2482, + "nodeType": "Return", + "src": "1933:17:16" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2485, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2467, + "src": "1978:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2486, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2469, + "src": "1982:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2488, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1971:13:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2475, + "id": 2489, + "nodeType": "Return", + "src": "1964:20:16" + } + ] + } + ] + }, + "documentation": { + "id": 2465, + "nodeType": "StructuredDocumentation", + "src": "1706:100:16", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + }, + "id": 2492, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1820:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2467, + "mutability": "mutable", + "name": "a", + "nameLocation": "1835:1:16", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "1827:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1827:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2469, + "mutability": "mutable", + "name": "b", + "nameLocation": "1846:1:16", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "1838:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2468, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1826:22:16" + }, + "returnParameters": { + "id": 2475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2472, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "1872:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2471, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2474, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "1878:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1878:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1871:15:16" + }, + "scope": 3405, + "src": "1811:190:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2519, + "nodeType": "Block", + "src": "2198:114:16", + "statements": [ + { + "id": 2518, + "nodeType": "UncheckedBlock", + "src": "2208:98:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "2236:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2236:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2511, + "nodeType": "IfStatement", + "src": "2232:29:16", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2509, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2251:10:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2503, + "id": 2510, + "nodeType": "Return", + "src": "2244:17:16" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2513, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "2289:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 2514, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "2293:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2289:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2516, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2282:13:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2503, + "id": 2517, + "nodeType": "Return", + "src": "2275:20:16" + } + ] + } + ] + }, + "documentation": { + "id": 2493, + "nodeType": "StructuredDocumentation", + "src": "2007:110:16", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 2520, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2495, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:16", + "nodeType": "VariableDeclaration", + "scope": 2520, + "src": "2138:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2497, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:16", + "nodeType": "VariableDeclaration", + "scope": 2520, + "src": "2149:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:16" + }, + "returnParameters": { + "id": 2503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2500, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2520, + "src": "2183:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2499, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2520, + "src": "2189:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:16" + }, + "scope": 3405, + "src": "2122:190:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2537, + "nodeType": "Block", + "src": "2449:37:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2530, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "2466:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2531, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2525, + "src": "2470:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2534, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2525, + "src": "2478:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:16", + "trueExpression": { + "id": 2533, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "2474:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2529, + "id": 2536, + "nodeType": "Return", + "src": "2459:20:16" + } + ] + }, + "documentation": { + "id": 2521, + "nodeType": "StructuredDocumentation", + "src": "2318:59:16", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2538, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2523, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:16", + "nodeType": "VariableDeclaration", + "scope": 2538, + "src": "2395:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2525, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:16", + "nodeType": "VariableDeclaration", + "scope": 2538, + "src": "2406:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:16" + }, + "returnParameters": { + "id": 2529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2528, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2538, + "src": "2440:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:16" + }, + "scope": 3405, + "src": "2382:104:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2555, + "nodeType": "Block", + "src": "2624:37:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2548, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "2641:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2549, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "2645:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2552, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "2653:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:16", + "trueExpression": { + "id": 2551, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "2649:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2547, + "id": 2554, + "nodeType": "Return", + "src": "2634:20:16" + } + ] + }, + "documentation": { + "id": 2539, + "nodeType": "StructuredDocumentation", + "src": "2492:60:16", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2556, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2541, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:16", + "nodeType": "VariableDeclaration", + "scope": 2556, + "src": "2570:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2543, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:16", + "nodeType": "VariableDeclaration", + "scope": 2556, + "src": "2581:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:16" + }, + "returnParameters": { + "id": 2547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2546, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2556, + "src": "2615:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:16" + }, + "scope": 3405, + "src": "2557:104:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2578, + "nodeType": "Block", + "src": "2845:82:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2566, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "2900:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2567, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "2904:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2569, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2570, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "2910:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2571, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "2914:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2910:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2573, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2909:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2899:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2565, + "id": 2577, + "nodeType": "Return", + "src": "2892:28:16" + } + ] + }, + "documentation": { + "id": 2557, + "nodeType": "StructuredDocumentation", + "src": "2667:102:16", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2559, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:16", + "nodeType": "VariableDeclaration", + "scope": 2579, + "src": "2791:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2561, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:16", + "nodeType": "VariableDeclaration", + "scope": 2579, + "src": "2802:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:16" + }, + "returnParameters": { + "id": 2565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2564, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2579, + "src": "2836:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:16" + }, + "scope": 3405, + "src": "2774:153:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2612, + "nodeType": "Block", + "src": "3219:260:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2589, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "3233:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2597, + "nodeType": "IfStatement", + "src": "3229:127:16", + "trueBody": { + "id": 2596, + "nodeType": "Block", + "src": "3241:115:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2592, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2582, + "src": "3340:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2593, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "3344:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2588, + "id": 2595, + "nodeType": "Return", + "src": "3333:12:16" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2598, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2582, + "src": "3444:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2602, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2582, + "src": "3458:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3458:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2605, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3457:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2606, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "3467:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3457:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:16", + "trueExpression": { + "hexValue": "30", + "id": 2601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2588, + "id": 2611, + "nodeType": "Return", + "src": "3437:35:16" + } + ] + }, + "documentation": { + "id": 2580, + "nodeType": "StructuredDocumentation", + "src": "2933:210:16", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 2613, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2582, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:16", + "nodeType": "VariableDeclaration", + "scope": 2613, + "src": "3165:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2584, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:16", + "nodeType": "VariableDeclaration", + "scope": 2613, + "src": "3176:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:16" + }, + "returnParameters": { + "id": 2588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2587, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2613, + "src": "3210:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2586, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:16" + }, + "scope": 3405, + "src": "3148:331:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2738, + "nodeType": "Block", + "src": "3901:4018:16", + "statements": [ + { + "id": 2737, + "nodeType": "UncheckedBlock", + "src": "3911:4002:16", + "statements": [ + { + "assignments": [ + 2626 + ], + "declarations": [ + { + "constant": false, + "id": 2626, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:16", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "4232:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2630, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2627, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "4248:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2628, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "4252:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4248:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:16" + }, + { + "assignments": [ + 2632 + ], + "declarations": [ + { + "constant": false, + "id": 2632, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "4320:5:16", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "4312:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4312:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2633, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:16" + }, + { + "AST": { + "nativeSrc": "4392:122:16", + "nodeType": "YulBlock", + "src": "4392:122:16", + "statements": [ + { + "nativeSrc": "4410:30:16", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:16", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:16", + "nodeType": "YulIdentifier", + "src": "4427:1:16" + }, + { + "name": "y", + "nativeSrc": "4430:1:16", + "nodeType": "YulIdentifier", + "src": "4430:1:16" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:16", + "nodeType": "YulLiteral", + "src": "4437:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:16", + "nodeType": "YulIdentifier", + "src": "4433:3:16" + }, + "nativeSrc": "4433:6:16", + "nodeType": "YulFunctionCall", + "src": "4433:6:16" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:16", + "nodeType": "YulIdentifier", + "src": "4420:6:16" + }, + "nativeSrc": "4420:20:16", + "nodeType": "YulFunctionCall", + "src": "4420:20:16" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:16", + "nodeType": "YulTypedName", + "src": "4414:2:16", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:16", + "nodeType": "YulAssignment", + "src": "4457:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:16", + "nodeType": "YulIdentifier", + "src": "4474:2:16" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:16", + "nodeType": "YulIdentifier", + "src": "4478:5:16" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:16", + "nodeType": "YulIdentifier", + "src": "4470:3:16" + }, + "nativeSrc": "4470:14:16", + "nodeType": "YulFunctionCall", + "src": "4470:14:16" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:16", + "nodeType": "YulIdentifier", + "src": "4489:2:16" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:16", + "nodeType": "YulIdentifier", + "src": "4493:5:16" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:16", + "nodeType": "YulIdentifier", + "src": "4486:2:16" + }, + "nativeSrc": "4486:13:16", + "nodeType": "YulFunctionCall", + "src": "4486:13:16" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:16", + "nodeType": "YulIdentifier", + "src": "4466:3:16" + }, + "nativeSrc": "4466:34:16", + "nodeType": "YulFunctionCall", + "src": "4466:34:16" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:16", + "nodeType": "YulIdentifier", + "src": "4457:5:16" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2626, + "isOffset": false, + "isSlot": false, + "src": "4478:5:16", + "valueSize": 1 + }, + { + "declaration": 2626, + "isOffset": false, + "isSlot": false, + "src": "4493:5:16", + "valueSize": 1 + }, + { + "declaration": 2632, + "isOffset": false, + "isSlot": false, + "src": "4457:5:16", + "valueSize": 1 + }, + { + "declaration": 2616, + "isOffset": false, + "isSlot": false, + "src": "4427:1:16", + "valueSize": 1 + }, + { + "declaration": 2618, + "isOffset": false, + "isSlot": false, + "src": "4430:1:16", + "valueSize": 1 + } + ], + "id": 2634, + "nodeType": "InlineAssembly", + "src": "4383:131:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2635, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "4595:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2643, + "nodeType": "IfStatement", + "src": "4591:368:16", + "trueBody": { + "id": 2642, + "nodeType": "Block", + "src": "4607:352:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2638, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "4925:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2639, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "4933:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4925:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2624, + "id": 2641, + "nodeType": "Return", + "src": "4918:26:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2644, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "5065:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2645, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "5080:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2651, + "nodeType": "IfStatement", + "src": "5061:88:16", + "trueBody": { + "id": 2650, + "nodeType": "Block", + "src": "5087:62:16", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2647, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2357, + "src": "5112:20:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 2648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2649, + "nodeType": "RevertStatement", + "src": "5105:29:16" + } + ] + } + }, + { + "assignments": [ + 2653 + ], + "declarations": [ + { + "constant": false, + "id": 2653, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:16", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "5404:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2654, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:16" + }, + { + "AST": { + "nativeSrc": "5444:291:16", + "nodeType": "YulBlock", + "src": "5444:291:16", + "statements": [ + { + "nativeSrc": "5513:38:16", + "nodeType": "YulAssignment", + "src": "5513:38:16", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:16", + "nodeType": "YulIdentifier", + "src": "5533:1:16" + }, + { + "name": "y", + "nativeSrc": "5536:1:16", + "nodeType": "YulIdentifier", + "src": "5536:1:16" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:16", + "nodeType": "YulIdentifier", + "src": "5539:11:16" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:16", + "nodeType": "YulIdentifier", + "src": "5526:6:16" + }, + "nativeSrc": "5526:25:16", + "nodeType": "YulFunctionCall", + "src": "5526:25:16" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:16", + "nodeType": "YulIdentifier", + "src": "5513:9:16" + } + ] + }, + { + "nativeSrc": "5633:41:16", + "nodeType": "YulAssignment", + "src": "5633:41:16", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:16", + "nodeType": "YulIdentifier", + "src": "5646:5:16" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:16", + "nodeType": "YulIdentifier", + "src": "5656:9:16" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:16", + "nodeType": "YulIdentifier", + "src": "5667:5:16" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:16", + "nodeType": "YulIdentifier", + "src": "5653:2:16" + }, + "nativeSrc": "5653:20:16", + "nodeType": "YulFunctionCall", + "src": "5653:20:16" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:16", + "nodeType": "YulIdentifier", + "src": "5642:3:16" + }, + "nativeSrc": "5642:32:16", + "nodeType": "YulFunctionCall", + "src": "5642:32:16" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:16", + "nodeType": "YulIdentifier", + "src": "5633:5:16" + } + ] + }, + { + "nativeSrc": "5691:30:16", + "nodeType": "YulAssignment", + "src": "5691:30:16", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:16", + "nodeType": "YulIdentifier", + "src": "5704:5:16" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:16", + "nodeType": "YulIdentifier", + "src": "5711:9:16" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:16", + "nodeType": "YulIdentifier", + "src": "5700:3:16" + }, + "nativeSrc": "5700:21:16", + "nodeType": "YulFunctionCall", + "src": "5700:21:16" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:16", + "nodeType": "YulIdentifier", + "src": "5691:5:16" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2620, + "isOffset": false, + "isSlot": false, + "src": "5539:11:16", + "valueSize": 1 + }, + { + "declaration": 2626, + "isOffset": false, + "isSlot": false, + "src": "5667:5:16", + "valueSize": 1 + }, + { + "declaration": 2626, + "isOffset": false, + "isSlot": false, + "src": "5691:5:16", + "valueSize": 1 + }, + { + "declaration": 2626, + "isOffset": false, + "isSlot": false, + "src": "5704:5:16", + "valueSize": 1 + }, + { + "declaration": 2632, + "isOffset": false, + "isSlot": false, + "src": "5633:5:16", + "valueSize": 1 + }, + { + "declaration": 2632, + "isOffset": false, + "isSlot": false, + "src": "5646:5:16", + "valueSize": 1 + }, + { + "declaration": 2653, + "isOffset": false, + "isSlot": false, + "src": "5513:9:16", + "valueSize": 1 + }, + { + "declaration": 2653, + "isOffset": false, + "isSlot": false, + "src": "5656:9:16", + "valueSize": 1 + }, + { + "declaration": 2653, + "isOffset": false, + "isSlot": false, + "src": "5711:9:16", + "valueSize": 1 + }, + { + "declaration": 2616, + "isOffset": false, + "isSlot": false, + "src": "5533:1:16", + "valueSize": 1 + }, + { + "declaration": 2618, + "isOffset": false, + "isSlot": false, + "src": "5536:1:16", + "valueSize": 1 + } + ], + "id": 2655, + "nodeType": "InlineAssembly", + "src": "5435:300:16" + }, + { + "assignments": [ + 2657 + ], + "declarations": [ + { + "constant": false, + "id": 2657, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:16", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "5939:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2664, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2658, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "5954:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 2659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2660, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "5973:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2662, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5954:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:16" + }, + { + "AST": { + "nativeSrc": "6008:362:16", + "nodeType": "YulBlock", + "src": "6008:362:16", + "statements": [ + { + "nativeSrc": "6073:37:16", + "nodeType": "YulAssignment", + "src": "6073:37:16", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:16", + "nodeType": "YulIdentifier", + "src": "6092:11:16" + }, + { + "name": "twos", + "nativeSrc": "6105:4:16", + "nodeType": "YulIdentifier", + "src": "6105:4:16" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:16", + "nodeType": "YulIdentifier", + "src": "6088:3:16" + }, + "nativeSrc": "6088:22:16", + "nodeType": "YulFunctionCall", + "src": "6088:22:16" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:16", + "nodeType": "YulIdentifier", + "src": "6073:11:16" + } + ] + }, + { + "nativeSrc": "6177:25:16", + "nodeType": "YulAssignment", + "src": "6177:25:16", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:16", + "nodeType": "YulIdentifier", + "src": "6190:5:16" + }, + { + "name": "twos", + "nativeSrc": "6197:4:16", + "nodeType": "YulIdentifier", + "src": "6197:4:16" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:16", + "nodeType": "YulIdentifier", + "src": "6186:3:16" + }, + "nativeSrc": "6186:16:16", + "nodeType": "YulFunctionCall", + "src": "6186:16:16" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:16", + "nodeType": "YulIdentifier", + "src": "6177:5:16" + } + ] + }, + { + "nativeSrc": "6317:39:16", + "nodeType": "YulAssignment", + "src": "6317:39:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:16", + "nodeType": "YulLiteral", + "src": "6337:1:16", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:16", + "nodeType": "YulIdentifier", + "src": "6340:4:16" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:16", + "nodeType": "YulIdentifier", + "src": "6333:3:16" + }, + "nativeSrc": "6333:12:16", + "nodeType": "YulFunctionCall", + "src": "6333:12:16" + }, + { + "name": "twos", + "nativeSrc": "6347:4:16", + "nodeType": "YulIdentifier", + "src": "6347:4:16" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:16", + "nodeType": "YulIdentifier", + "src": "6329:3:16" + }, + "nativeSrc": "6329:23:16", + "nodeType": "YulFunctionCall", + "src": "6329:23:16" + }, + { + "kind": "number", + "nativeSrc": "6354:1:16", + "nodeType": "YulLiteral", + "src": "6354:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:16", + "nodeType": "YulIdentifier", + "src": "6325:3:16" + }, + "nativeSrc": "6325:31:16", + "nodeType": "YulFunctionCall", + "src": "6325:31:16" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:16", + "nodeType": "YulIdentifier", + "src": "6317:4:16" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2620, + "isOffset": false, + "isSlot": false, + "src": "6073:11:16", + "valueSize": 1 + }, + { + "declaration": 2620, + "isOffset": false, + "isSlot": false, + "src": "6092:11:16", + "valueSize": 1 + }, + { + "declaration": 2626, + "isOffset": false, + "isSlot": false, + "src": "6177:5:16", + "valueSize": 1 + }, + { + "declaration": 2626, + "isOffset": false, + "isSlot": false, + "src": "6190:5:16", + "valueSize": 1 + }, + { + "declaration": 2657, + "isOffset": false, + "isSlot": false, + "src": "6105:4:16", + "valueSize": 1 + }, + { + "declaration": 2657, + "isOffset": false, + "isSlot": false, + "src": "6197:4:16", + "valueSize": 1 + }, + { + "declaration": 2657, + "isOffset": false, + "isSlot": false, + "src": "6317:4:16", + "valueSize": 1 + }, + { + "declaration": 2657, + "isOffset": false, + "isSlot": false, + "src": "6340:4:16", + "valueSize": 1 + }, + { + "declaration": 2657, + "isOffset": false, + "isSlot": false, + "src": "6347:4:16", + "valueSize": 1 + } + ], + "id": 2665, + "nodeType": "InlineAssembly", + "src": "5999:371:16" + }, + { + "expression": { + "id": 2670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2666, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "6436:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2667, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "6445:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2668, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2657, + "src": "6453:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2671, + "nodeType": "ExpressionStatement", + "src": "6436:21:16" + }, + { + "assignments": [ + 2673 + ], + "declarations": [ + { + "constant": false, + "id": 2673, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:16", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "6775:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2680, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2675, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "6798:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2677, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:16" + }, + { + "expression": { + "id": 2687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2681, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7031:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7042:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2683, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "7046:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2684, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7060:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7046:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7042:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7031:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2688, + "nodeType": "ExpressionStatement", + "src": "7031:36:16" + }, + { + "expression": { + "id": 2695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2689, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7100:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7111:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2691, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "7115:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2692, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7129:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7115:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7111:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7100:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2696, + "nodeType": "ExpressionStatement", + "src": "7100:36:16" + }, + { + "expression": { + "id": 2703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2697, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7170:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2699, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "7185:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2700, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7199:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7181:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7170:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2704, + "nodeType": "ExpressionStatement", + "src": "7170:36:16" + }, + { + "expression": { + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2705, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7240:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2707, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "7255:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2708, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7269:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2712, + "nodeType": "ExpressionStatement", + "src": "7240:36:16" + }, + { + "expression": { + "id": 2719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2713, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7310:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2715, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "7325:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2716, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7339:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2720, + "nodeType": "ExpressionStatement", + "src": "7310:36:16" + }, + { + "expression": { + "id": 2727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2721, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7381:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2723, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "7396:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2724, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7410:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2728, + "nodeType": "ExpressionStatement", + "src": "7381:36:16" + }, + { + "expression": { + "id": 2733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2729, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2623, + "src": "7851:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2730, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "7860:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2731, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "7868:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2734, + "nodeType": "ExpressionStatement", + "src": "7851:24:16" + }, + { + "expression": { + "id": 2735, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2623, + "src": "7896:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2624, + "id": 2736, + "nodeType": "Return", + "src": "7889:13:16" + } + ] + } + ] + }, + "documentation": { + "id": 2614, + "nodeType": "StructuredDocumentation", + "src": "3485:313:16", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 2739, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:16", + "nodeType": "VariableDeclaration", + "scope": 2739, + "src": "3819:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3819:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "mutability": "mutable", + "name": "y", + "nameLocation": "3838:1:16", + "nodeType": "VariableDeclaration", + "scope": 2739, + "src": "3830:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3830:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "3849:11:16", + "nodeType": "VariableDeclaration", + "scope": 2739, + "src": "3841:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3841:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3818:43:16" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2623, + "mutability": "mutable", + "name": "result", + "nameLocation": "3893:6:16", + "nodeType": "VariableDeclaration", + "scope": 2739, + "src": "3885:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2622, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3885:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3884:16:16" + }, + "scope": 3405, + "src": "3803:4116:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2781, + "nodeType": "Block", + "src": "8161:192:16", + "statements": [ + { + "assignments": [ + 2755 + ], + "declarations": [ + { + "constant": false, + "id": 2755, + "mutability": "mutable", + "name": "result", + "nameLocation": "8179:6:16", + "nodeType": "VariableDeclaration", + "scope": 2781, + "src": "8171:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2761, + "initialValue": { + "arguments": [ + { + "id": 2757, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2742, + "src": "8195:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2758, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "8198:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2759, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "8201:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2756, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2739, + 2782 + ], + "referencedDeclaration": 2739, + "src": "8188:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8188:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8171:42:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2763, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2749, + "src": "8244:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + ], + "id": 2762, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "8227:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2362_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8227:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2766, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2742, + "src": "8264:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2767, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "8267:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2768, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "8270:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2765, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967280, + "src": "8257:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8257:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8285:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8257:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8227:59:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2778, + "nodeType": "IfStatement", + "src": "8223:101:16", + "trueBody": { + "id": 2777, + "nodeType": "Block", + "src": "8288:36:16", + "statements": [ + { + "expression": { + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2773, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2755, + "src": "8302:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8312:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8302:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2776, + "nodeType": "ExpressionStatement", + "src": "8302:11:16" + } + ] + } + }, + { + "expression": { + "id": 2779, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2755, + "src": "8340:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2753, + "id": 2780, + "nodeType": "Return", + "src": "8333:13:16" + } + ] + }, + "documentation": { + "id": 2740, + "nodeType": "StructuredDocumentation", + "src": "7925:121:16", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 2782, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "8060:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2742, + "mutability": "mutable", + "name": "x", + "nameLocation": "8075:1:16", + "nodeType": "VariableDeclaration", + "scope": 2782, + "src": "8067:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2741, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8067:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2744, + "mutability": "mutable", + "name": "y", + "nameLocation": "8086:1:16", + "nodeType": "VariableDeclaration", + "scope": 2782, + "src": "8078:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8078:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "8097:11:16", + "nodeType": "VariableDeclaration", + "scope": 2782, + "src": "8089:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2749, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8119:8:16", + "nodeType": "VariableDeclaration", + "scope": 2782, + "src": "8110:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2748, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2747, + "name": "Rounding", + "nameLocations": [ + "8110:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2362, + "src": "8110:8:16" + }, + "referencedDeclaration": 2362, + "src": "8110:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8066:62:16" + }, + "returnParameters": { + "id": 2753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2782, + "src": "8152:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8152:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8151:9:16" + }, + "scope": 3405, + "src": "8051:302:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2893, + "nodeType": "Block", + "src": "8644:1585:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2790, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "8658:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8663:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8658:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2796, + "nodeType": "IfStatement", + "src": "8654:45:16", + "trueBody": { + "id": 2795, + "nodeType": "Block", + "src": "8666:33:16", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8687:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2789, + "id": 2794, + "nodeType": "Return", + "src": "8680:8:16" + } + ] + } + }, + { + "assignments": [ + 2798 + ], + "declarations": [ + { + "constant": false, + "id": 2798, + "mutability": "mutable", + "name": "result", + "nameLocation": "9386:6:16", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "9378:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2797, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9378:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2807, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9395:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2801, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "9406:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2800, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3061, + 3096 + ], + "referencedDeclaration": 3061, + "src": "9401:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9401:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9412:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9401:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2805, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9400:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9395:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9378:36:16" + }, + { + "id": 2892, + "nodeType": "UncheckedBlock", + "src": "9815:408:16", + "statements": [ + { + "expression": { + "id": 2817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2808, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9839:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2809, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9849:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2810, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "9858:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2811, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9862:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9858:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9849:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2814, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9848:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9873:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9848:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9839:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2818, + "nodeType": "ExpressionStatement", + "src": "9839:35:16" + }, + { + "expression": { + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2819, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9888:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2820, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9898:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2821, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "9907:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2822, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9911:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9907:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9898:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2825, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9897:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9922:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9897:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9888:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2829, + "nodeType": "ExpressionStatement", + "src": "9888:35:16" + }, + { + "expression": { + "id": 2839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2830, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9937:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2831, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9947:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2832, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "9956:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2833, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9960:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9956:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9947:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2836, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9946:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9971:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9946:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9937:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2840, + "nodeType": "ExpressionStatement", + "src": "9937:35:16" + }, + { + "expression": { + "id": 2850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2841, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9986:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2842, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "9996:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2843, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "10005:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2844, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10009:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10005:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9996:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2847, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9995:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10020:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9995:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9986:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2851, + "nodeType": "ExpressionStatement", + "src": "9986:35:16" + }, + { + "expression": { + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2852, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10035:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2853, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10045:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2854, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "10054:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2855, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10058:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10054:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10045:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10044:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10069:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10044:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10035:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2862, + "nodeType": "ExpressionStatement", + "src": "10035:35:16" + }, + { + "expression": { + "id": 2872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2863, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10084:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2864, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10094:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2865, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "10103:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2866, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10107:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10094:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2869, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10093:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10118:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10093:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10084:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2873, + "nodeType": "ExpressionStatement", + "src": "10084:35:16" + }, + { + "expression": { + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2874, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10133:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2875, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10143:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2876, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "10152:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2877, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10156:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10152:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10143:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2880, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10142:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10142:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10133:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2884, + "nodeType": "ExpressionStatement", + "src": "10133:35:16" + }, + { + "expression": { + "arguments": [ + { + "id": 2886, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10193:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2887, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "10201:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2888, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2798, + "src": "10205:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10201:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2885, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "10189:3:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10189:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2789, + "id": 2891, + "nodeType": "Return", + "src": "10182:30:16" + } + ] + } + ] + }, + "documentation": { + "id": 2783, + "nodeType": "StructuredDocumentation", + "src": "8359:223:16", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 2894, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8596:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2785, + "mutability": "mutable", + "name": "a", + "nameLocation": "8609:1:16", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "8601:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2784, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8601:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8600:11:16" + }, + "returnParameters": { + "id": 2789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2788, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "8635:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8635:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8634:9:16" + }, + "scope": 3405, + "src": "8587:1642:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2928, + "nodeType": "Block", + "src": "10405:164:16", + "statements": [ + { + "id": 2927, + "nodeType": "UncheckedBlock", + "src": "10415:148:16", + "statements": [ + { + "assignments": [ + 2906 + ], + "declarations": [ + { + "constant": false, + "id": 2906, + "mutability": "mutable", + "name": "result", + "nameLocation": "10447:6:16", + "nodeType": "VariableDeclaration", + "scope": 2927, + "src": "10439:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10439:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2910, + "initialValue": { + "arguments": [ + { + "id": 2908, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2897, + "src": "10461:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2907, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2894, + 2929 + ], + "referencedDeclaration": 2894, + "src": "10456:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10456:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10439:24:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2911, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2906, + "src": "10484:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2913, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2900, + "src": "10511:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + ], + "id": 2912, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "10494:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2362_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10494:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2915, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2906, + "src": "10524:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2916, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2906, + "src": "10533:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2918, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2897, + "src": "10542:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10494:49:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10550:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10494:57:16", + "trueExpression": { + "hexValue": "31", + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10546:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2924, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10493:59:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "10484:68:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2904, + "id": 2926, + "nodeType": "Return", + "src": "10477:75:16" + } + ] + } + ] + }, + "documentation": { + "id": 2895, + "nodeType": "StructuredDocumentation", + "src": "10235:89:16", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 2929, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "10338:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2897, + "mutability": "mutable", + "name": "a", + "nameLocation": "10351:1:16", + "nodeType": "VariableDeclaration", + "scope": 2929, + "src": "10343:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10343:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10363:8:16", + "nodeType": "VariableDeclaration", + "scope": 2929, + "src": "10354:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2899, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2898, + "name": "Rounding", + "nameLocations": [ + "10354:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2362, + "src": "10354:8:16" + }, + "referencedDeclaration": 2362, + "src": "10354:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10342:30:16" + }, + "returnParameters": { + "id": 2904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2903, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2929, + "src": "10396:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10396:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10395:9:16" + }, + "scope": 3405, + "src": "10329:240:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3060, + "nodeType": "Block", + "src": "10760:922:16", + "statements": [ + { + "assignments": [ + 2938 + ], + "declarations": [ + { + "constant": false, + "id": 2938, + "mutability": "mutable", + "name": "result", + "nameLocation": "10778:6:16", + "nodeType": "VariableDeclaration", + "scope": 3060, + "src": "10770:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10770:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2940, + "initialValue": { + "hexValue": "30", + "id": 2939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10787:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10770:18:16" + }, + { + "id": 3057, + "nodeType": "UncheckedBlock", + "src": "10798:855:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2941, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "10826:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10835:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10826:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10841:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10826:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2955, + "nodeType": "IfStatement", + "src": "10822:99:16", + "trueBody": { + "id": 2954, + "nodeType": "Block", + "src": "10844:77:16", + "statements": [ + { + "expression": { + "id": 2948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2946, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "10862:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 2947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10872:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10862:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2949, + "nodeType": "ExpressionStatement", + "src": "10862:13:16" + }, + { + "expression": { + "id": 2952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2950, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "10893:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10903:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10893:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2953, + "nodeType": "ExpressionStatement", + "src": "10893:13:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2956, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "10938:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10947:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10938:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10952:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10938:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2970, + "nodeType": "IfStatement", + "src": "10934:96:16", + "trueBody": { + "id": 2969, + "nodeType": "Block", + "src": "10955:75:16", + "statements": [ + { + "expression": { + "id": 2963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2961, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "10973:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 2962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10983:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10973:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2964, + "nodeType": "ExpressionStatement", + "src": "10973:12:16" + }, + { + "expression": { + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2965, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11003:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 2966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11013:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11003:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2968, + "nodeType": "ExpressionStatement", + "src": "11003:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2971, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11047:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11056:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11047:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11061:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11047:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2985, + "nodeType": "IfStatement", + "src": "11043:96:16", + "trueBody": { + "id": 2984, + "nodeType": "Block", + "src": "11064:75:16", + "statements": [ + { + "expression": { + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2976, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11082:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11092:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11082:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2979, + "nodeType": "ExpressionStatement", + "src": "11082:12:16" + }, + { + "expression": { + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2980, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11112:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11112:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2983, + "nodeType": "ExpressionStatement", + "src": "11112:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2986, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11156:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11165:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11156:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11170:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11156:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3000, + "nodeType": "IfStatement", + "src": "11152:96:16", + "trueBody": { + "id": 2999, + "nodeType": "Block", + "src": "11173:75:16", + "statements": [ + { + "expression": { + "id": 2993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2991, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11191:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 2992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11201:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11191:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2994, + "nodeType": "ExpressionStatement", + "src": "11191:12:16" + }, + { + "expression": { + "id": 2997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2995, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11221:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11231:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11221:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2998, + "nodeType": "ExpressionStatement", + "src": "11221:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3001, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11265:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11274:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11265:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11278:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11265:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3015, + "nodeType": "IfStatement", + "src": "11261:93:16", + "trueBody": { + "id": 3014, + "nodeType": "Block", + "src": "11281:73:16", + "statements": [ + { + "expression": { + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3006, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11299:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11309:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11299:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3009, + "nodeType": "ExpressionStatement", + "src": "11299:11:16" + }, + { + "expression": { + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3010, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11328:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11338:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11328:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3013, + "nodeType": "ExpressionStatement", + "src": "11328:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3016, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11371:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11380:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11371:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11384:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11371:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3030, + "nodeType": "IfStatement", + "src": "11367:93:16", + "trueBody": { + "id": 3029, + "nodeType": "Block", + "src": "11387:73:16", + "statements": [ + { + "expression": { + "id": 3023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3021, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11405:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11415:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11405:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3024, + "nodeType": "ExpressionStatement", + "src": "11405:11:16" + }, + { + "expression": { + "id": 3027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3025, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11434:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11444:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11434:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3028, + "nodeType": "ExpressionStatement", + "src": "11434:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3031, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11477:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11486:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11477:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11477:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3045, + "nodeType": "IfStatement", + "src": "11473:93:16", + "trueBody": { + "id": 3044, + "nodeType": "Block", + "src": "11493:73:16", + "statements": [ + { + "expression": { + "id": 3038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3036, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11511:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11521:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11511:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3039, + "nodeType": "ExpressionStatement", + "src": "11511:11:16" + }, + { + "expression": { + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3040, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11540:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11550:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11540:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3043, + "nodeType": "ExpressionStatement", + "src": "11540:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3046, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2932, + "src": "11583:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11592:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11583:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11596:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11583:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3056, + "nodeType": "IfStatement", + "src": "11579:64:16", + "trueBody": { + "id": 3055, + "nodeType": "Block", + "src": "11599:44:16", + "statements": [ + { + "expression": { + "id": 3053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3051, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11617:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11627:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11617:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3054, + "nodeType": "ExpressionStatement", + "src": "11617:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3058, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "11669:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2936, + "id": 3059, + "nodeType": "Return", + "src": "11662:13:16" + } + ] + }, + "documentation": { + "id": 2930, + "nodeType": "StructuredDocumentation", + "src": "10575:119:16", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 3061, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "10708:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2933, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2932, + "mutability": "mutable", + "name": "value", + "nameLocation": "10721:5:16", + "nodeType": "VariableDeclaration", + "scope": 3061, + "src": "10713:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2931, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10713:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10712:15:16" + }, + "returnParameters": { + "id": 2936, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2935, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3061, + "src": "10751:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2934, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10751:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10750:9:16" + }, + "scope": 3405, + "src": "10699:983:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3095, + "nodeType": "Block", + "src": "11915:168:16", + "statements": [ + { + "id": 3094, + "nodeType": "UncheckedBlock", + "src": "11925:152:16", + "statements": [ + { + "assignments": [ + 3073 + ], + "declarations": [ + { + "constant": false, + "id": 3073, + "mutability": "mutable", + "name": "result", + "nameLocation": "11957:6:16", + "nodeType": "VariableDeclaration", + "scope": 3094, + "src": "11949:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3077, + "initialValue": { + "arguments": [ + { + "id": 3075, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "11971:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3074, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3061, + 3096 + ], + "referencedDeclaration": 3061, + "src": "11966:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11966:11:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:28:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3078, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3073, + "src": "11998:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3080, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3067, + "src": "12025:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + ], + "id": 3079, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "12008:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2362_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12008:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 3083, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3073, + "src": "12043:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3085, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "12052:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12008:49:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12064:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12008:57:16", + "trueExpression": { + "hexValue": "31", + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12060:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3091, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12007:59:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11998:68:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3071, + "id": 3093, + "nodeType": "Return", + "src": "11991:75:16" + } + ] + } + ] + }, + "documentation": { + "id": 3062, + "nodeType": "StructuredDocumentation", + "src": "11688:142:16", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3096, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "11844:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3064, + "mutability": "mutable", + "name": "value", + "nameLocation": "11857:5:16", + "nodeType": "VariableDeclaration", + "scope": 3096, + "src": "11849:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11849:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3067, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11873:8:16", + "nodeType": "VariableDeclaration", + "scope": 3096, + "src": "11864:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3066, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3065, + "name": "Rounding", + "nameLocations": [ + "11864:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2362, + "src": "11864:8:16" + }, + "referencedDeclaration": 2362, + "src": "11864:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11848:34:16" + }, + "returnParameters": { + "id": 3071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3096, + "src": "11906:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11906:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11905:9:16" + }, + "scope": 3405, + "src": "11835:248:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3224, + "nodeType": "Block", + "src": "12276:854:16", + "statements": [ + { + "assignments": [ + 3105 + ], + "declarations": [ + { + "constant": false, + "id": 3105, + "mutability": "mutable", + "name": "result", + "nameLocation": "12294:6:16", + "nodeType": "VariableDeclaration", + "scope": 3224, + "src": "12286:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12286:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3107, + "initialValue": { + "hexValue": "30", + "id": 3106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12303:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12286:18:16" + }, + { + "id": 3221, + "nodeType": "UncheckedBlock", + "src": "12314:787:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3108, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12342:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12351:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12357:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12351:8:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12342:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3124, + "nodeType": "IfStatement", + "src": "12338:103:16", + "trueBody": { + "id": 3123, + "nodeType": "Block", + "src": "12361:80:16", + "statements": [ + { + "expression": { + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3113, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12379:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12388:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12394:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12388:8:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12379:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3118, + "nodeType": "ExpressionStatement", + "src": "12379:17:16" + }, + { + "expression": { + "id": 3121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3119, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "12414:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12424:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12414:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3122, + "nodeType": "ExpressionStatement", + "src": "12414:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12458:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 3128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12467:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12473:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12467:8:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12458:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3141, + "nodeType": "IfStatement", + "src": "12454:103:16", + "trueBody": { + "id": 3140, + "nodeType": "Block", + "src": "12477:80:16", + "statements": [ + { + "expression": { + "id": 3134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3130, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12495:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 3133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12504:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12510:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12504:8:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12495:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3135, + "nodeType": "ExpressionStatement", + "src": "12495:17:16" + }, + { + "expression": { + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3136, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "12530:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12540:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12530:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3139, + "nodeType": "ExpressionStatement", + "src": "12530:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3142, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12574:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12583:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12589:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12583:8:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12574:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3158, + "nodeType": "IfStatement", + "src": "12570:103:16", + "trueBody": { + "id": 3157, + "nodeType": "Block", + "src": "12593:80:16", + "statements": [ + { + "expression": { + "id": 3151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3147, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12611:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12620:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12626:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12620:8:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12611:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3152, + "nodeType": "ExpressionStatement", + "src": "12611:17:16" + }, + { + "expression": { + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3153, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "12646:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12656:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12646:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "12646:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3159, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12690:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12699:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12705:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12699:7:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12690:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3175, + "nodeType": "IfStatement", + "src": "12686:100:16", + "trueBody": { + "id": 3174, + "nodeType": "Block", + "src": "12708:78:16", + "statements": [ + { + "expression": { + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3164, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12726:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12735:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12741:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12735:7:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12726:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "12726:16:16" + }, + { + "expression": { + "id": 3172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3170, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "12760:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12770:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12760:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3173, + "nodeType": "ExpressionStatement", + "src": "12760:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3176, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12803:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12812:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12818:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12812:7:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12803:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3192, + "nodeType": "IfStatement", + "src": "12799:100:16", + "trueBody": { + "id": 3191, + "nodeType": "Block", + "src": "12821:78:16", + "statements": [ + { + "expression": { + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3181, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12839:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12848:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12854:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12848:7:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12839:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3186, + "nodeType": "ExpressionStatement", + "src": "12839:16:16" + }, + { + "expression": { + "id": 3189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3187, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "12873:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12883:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12873:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3190, + "nodeType": "ExpressionStatement", + "src": "12873:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3193, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12916:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12925:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12931:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12925:7:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12916:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3209, + "nodeType": "IfStatement", + "src": "12912:100:16", + "trueBody": { + "id": 3208, + "nodeType": "Block", + "src": "12934:78:16", + "statements": [ + { + "expression": { + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3198, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "12952:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12961:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12967:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12961:7:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12952:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3203, + "nodeType": "ExpressionStatement", + "src": "12952:16:16" + }, + { + "expression": { + "id": 3206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3204, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "12986:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12996:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12986:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3207, + "nodeType": "ExpressionStatement", + "src": "12986:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3210, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3099, + "src": "13029:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 3213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13038:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13044:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13038:7:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "13029:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3220, + "nodeType": "IfStatement", + "src": "13025:66:16", + "trueBody": { + "id": 3219, + "nodeType": "Block", + "src": "13047:44:16", + "statements": [ + { + "expression": { + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3215, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "13065:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13075:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13065:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3218, + "nodeType": "ExpressionStatement", + "src": "13065:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3222, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "13117:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3103, + "id": 3223, + "nodeType": "Return", + "src": "13110:13:16" + } + ] + }, + "documentation": { + "id": 3097, + "nodeType": "StructuredDocumentation", + "src": "12089:120:16", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 3225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "12223:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3099, + "mutability": "mutable", + "name": "value", + "nameLocation": "12237:5:16", + "nodeType": "VariableDeclaration", + "scope": 3225, + "src": "12229:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12229:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12228:15:16" + }, + "returnParameters": { + "id": 3103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3102, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3225, + "src": "12267:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12267:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12266:9:16" + }, + "scope": 3405, + "src": "12214:916:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3259, + "nodeType": "Block", + "src": "13365:170:16", + "statements": [ + { + "id": 3258, + "nodeType": "UncheckedBlock", + "src": "13375:154:16", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "result", + "nameLocation": "13407:6:16", + "nodeType": "VariableDeclaration", + "scope": 3258, + "src": "13399:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13399:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3241, + "initialValue": { + "arguments": [ + { + "id": 3239, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "13422:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3238, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3225, + 3260 + ], + "referencedDeclaration": 3225, + "src": "13416:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13416:12:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13399:29:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3242, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "13449:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3244, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3231, + "src": "13476:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + ], + "id": 3243, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "13459:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2362_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13459:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13489:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 3247, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "13495:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3249, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "13504:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13459:50:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13516:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13459:58:16", + "trueExpression": { + "hexValue": "31", + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13512:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3255, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13458:60:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13449:69:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3235, + "id": 3257, + "nodeType": "Return", + "src": "13442:76:16" + } + ] + } + ] + }, + "documentation": { + "id": 3226, + "nodeType": "StructuredDocumentation", + "src": "13136:143:16", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "13293:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3232, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3228, + "mutability": "mutable", + "name": "value", + "nameLocation": "13307:5:16", + "nodeType": "VariableDeclaration", + "scope": 3260, + "src": "13299:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13299:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3231, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "13323:8:16", + "nodeType": "VariableDeclaration", + "scope": 3260, + "src": "13314:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3230, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3229, + "name": "Rounding", + "nameLocations": [ + "13314:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2362, + "src": "13314:8:16" + }, + "referencedDeclaration": 2362, + "src": "13314:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "13298:34:16" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3234, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3260, + "src": "13356:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13356:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13355:9:16" + }, + "scope": 3405, + "src": "13284:251:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3346, + "nodeType": "Block", + "src": "13855:600:16", + "statements": [ + { + "assignments": [ + 3269 + ], + "declarations": [ + { + "constant": false, + "id": 3269, + "mutability": "mutable", + "name": "result", + "nameLocation": "13873:6:16", + "nodeType": "VariableDeclaration", + "scope": 3346, + "src": "13865:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13865:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3271, + "initialValue": { + "hexValue": "30", + "id": 3270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13882:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13865:18:16" + }, + { + "id": 3343, + "nodeType": "UncheckedBlock", + "src": "13893:533:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3272, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "13921:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13921:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13936:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13921:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3286, + "nodeType": "IfStatement", + "src": "13917:98:16", + "trueBody": { + "id": 3285, + "nodeType": "Block", + "src": "13939:76:16", + "statements": [ + { + "expression": { + "id": 3279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3277, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "13957:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13967:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13957:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3280, + "nodeType": "ExpressionStatement", + "src": "13957:13:16" + }, + { + "expression": { + "id": 3283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3281, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "13988:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13988:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3284, + "nodeType": "ExpressionStatement", + "src": "13988:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3287, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "14032:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14041:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14032:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14046:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14032:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3301, + "nodeType": "IfStatement", + "src": "14028:95:16", + "trueBody": { + "id": 3300, + "nodeType": "Block", + "src": "14049:74:16", + "statements": [ + { + "expression": { + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3292, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "14067:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14077:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14067:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3295, + "nodeType": "ExpressionStatement", + "src": "14067:12:16" + }, + { + "expression": { + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3296, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "14097:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14107:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14097:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "14097:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3302, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "14140:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14149:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14140:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14154:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14140:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3316, + "nodeType": "IfStatement", + "src": "14136:95:16", + "trueBody": { + "id": 3315, + "nodeType": "Block", + "src": "14157:74:16", + "statements": [ + { + "expression": { + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3307, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "14175:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14185:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14175:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3310, + "nodeType": "ExpressionStatement", + "src": "14175:12:16" + }, + { + "expression": { + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3311, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "14205:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14215:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "14205:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3314, + "nodeType": "ExpressionStatement", + "src": "14205:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3317, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "14248:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14257:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14248:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14262:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14248:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3331, + "nodeType": "IfStatement", + "src": "14244:95:16", + "trueBody": { + "id": 3330, + "nodeType": "Block", + "src": "14265:74:16", + "statements": [ + { + "expression": { + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "14283:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14293:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14283:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3325, + "nodeType": "ExpressionStatement", + "src": "14283:12:16" + }, + { + "expression": { + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3326, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "14313:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14323:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14313:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3329, + "nodeType": "ExpressionStatement", + "src": "14313:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3332, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "14356:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14365:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14356:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14369:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14356:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3342, + "nodeType": "IfStatement", + "src": "14352:64:16", + "trueBody": { + "id": 3341, + "nodeType": "Block", + "src": "14372:44:16", + "statements": [ + { + "expression": { + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3337, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "14390:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14400:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14390:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3340, + "nodeType": "ExpressionStatement", + "src": "14390:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3344, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "14442:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3267, + "id": 3345, + "nodeType": "Return", + "src": "14435:13:16" + } + ] + }, + "documentation": { + "id": 3261, + "nodeType": "StructuredDocumentation", + "src": "13541:246:16", + "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 3347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "13801:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3263, + "mutability": "mutable", + "name": "value", + "nameLocation": "13816:5:16", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "13808:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13808:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13807:15:16" + }, + "returnParameters": { + "id": 3267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3266, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "13846:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13846:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13845:9:16" + }, + "scope": 3405, + "src": "13792:663:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3384, + "nodeType": "Block", + "src": "14692:177:16", + "statements": [ + { + "id": 3383, + "nodeType": "UncheckedBlock", + "src": "14702:161:16", + "statements": [ + { + "assignments": [ + 3359 + ], + "declarations": [ + { + "constant": false, + "id": 3359, + "mutability": "mutable", + "name": "result", + "nameLocation": "14734:6:16", + "nodeType": "VariableDeclaration", + "scope": 3383, + "src": "14726:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3358, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14726:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3363, + "initialValue": { + "arguments": [ + { + "id": 3361, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3350, + "src": "14750:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3360, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3347, + 3385 + ], + "referencedDeclaration": 3347, + "src": "14743:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14743:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14726:30:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3364, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "14777:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3366, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "14804:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + ], + "id": 3365, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "14787:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2362_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14817:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3369, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "14823:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14833:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "14823:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3372, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14822:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3374, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3350, + "src": "14838:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14787:56:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14850:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14787:64:16", + "trueExpression": { + "hexValue": "31", + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14846:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3380, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14786:66:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14777:75:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3357, + "id": 3382, + "nodeType": "Return", + "src": "14770:82:16" + } + ] + } + ] + }, + "documentation": { + "id": 3348, + "nodeType": "StructuredDocumentation", + "src": "14461:144:16", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3385, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "14619:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3350, + "mutability": "mutable", + "name": "value", + "nameLocation": "14634:5:16", + "nodeType": "VariableDeclaration", + "scope": 3385, + "src": "14626:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14626:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3353, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "14650:8:16", + "nodeType": "VariableDeclaration", + "scope": 3385, + "src": "14641:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3352, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3351, + "name": "Rounding", + "nameLocations": [ + "14641:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2362, + "src": "14641:8:16" + }, + "referencedDeclaration": 2362, + "src": "14641:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "14625:34:16" + }, + "returnParameters": { + "id": 3357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3356, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3385, + "src": "14683:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3355, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14683:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14682:9:16" + }, + "scope": 3405, + "src": "14610:259:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "15067:48:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3396, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3389, + "src": "15090:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + ], + "id": 3395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15084:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 3394, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15084:5:16", + "typeDescriptions": {} + } + }, + "id": 3397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15084:15:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15102:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15084:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 3400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15107:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15084:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3393, + "id": 3402, + "nodeType": "Return", + "src": "15077:31:16" + } + ] + }, + "documentation": { + "id": 3386, + "nodeType": "StructuredDocumentation", + "src": "14875:113:16", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "15002:16:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3389, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "15028:8:16", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "15019:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3388, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3387, + "name": "Rounding", + "nameLocations": [ + "15019:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2362, + "src": "15019:8:16" + }, + "referencedDeclaration": 2362, + "src": "15019:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2362", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "15018:19:16" + }, + "returnParameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3392, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "15061:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15061:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15060:6:16" + }, + "scope": 3405, + "src": "14993:122:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3406, + "src": "203:14914:16", + "usedErrors": [ + 2357 + ], + "usedEvents": [] + } + ], + "src": "103:15015:16" + }, + "id": 16 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SignedMath": [ + 3510 + ] + }, + "id": 3511, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3407, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:17" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3408, + "nodeType": "StructuredDocumentation", + "src": "135:80:17", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3510, + "linearizedBaseContracts": [ + 3510 + ], + "name": "SignedMath", + "nameLocation": "224:10:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3425, + "nodeType": "Block", + "src": "376:37:17", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3418, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "393:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3419, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "397:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "393:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3422, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "405:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "393:13:17", + "trueExpression": { + "id": 3421, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "401:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3417, + "id": 3424, + "nodeType": "Return", + "src": "386:20:17" + } + ] + }, + "documentation": { + "id": 3409, + "nodeType": "StructuredDocumentation", + "src": "241:66:17", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 3426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "321:3:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "a", + "nameLocation": "332:1:17", + "nodeType": "VariableDeclaration", + "scope": 3426, + "src": "325:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3410, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "325:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "b", + "nameLocation": "342:1:17", + "nodeType": "VariableDeclaration", + "scope": 3426, + "src": "335:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3412, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "335:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "324:20:17" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3426, + "src": "368:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3415, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "368:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "367:8:17" + }, + "scope": 3510, + "src": "312:101:17", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3443, + "nodeType": "Block", + "src": "555:37:17", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3436, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3429, + "src": "572:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3437, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3431, + "src": "576:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "572:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3440, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3431, + "src": "584:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "572:13:17", + "trueExpression": { + "id": 3439, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3429, + "src": "580:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3435, + "id": 3442, + "nodeType": "Return", + "src": "565:20:17" + } + ] + }, + "documentation": { + "id": 3427, + "nodeType": "StructuredDocumentation", + "src": "419:67:17", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 3444, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "500:3:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3429, + "mutability": "mutable", + "name": "a", + "nameLocation": "511:1:17", + "nodeType": "VariableDeclaration", + "scope": 3444, + "src": "504:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3428, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "504:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "mutability": "mutable", + "name": "b", + "nameLocation": "521:1:17", + "nodeType": "VariableDeclaration", + "scope": 3444, + "src": "514:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3430, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "514:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "503:20:17" + }, + "returnParameters": { + "id": 3435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3434, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3444, + "src": "547:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3433, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "547:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "546:8:17" + }, + "scope": 3510, + "src": "491:101:17", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3487, + "nodeType": "Block", + "src": "797:162:17", + "statements": [ + { + "assignments": [ + 3455 + ], + "declarations": [ + { + "constant": false, + "id": 3455, + "mutability": "mutable", + "name": "x", + "nameLocation": "866:1:17", + "nodeType": "VariableDeclaration", + "scope": 3487, + "src": "859:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3454, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "859:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 3468, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "871:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 3457, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3449, + "src": "875:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "871:5:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "870:7:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3460, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "882:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3461, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3449, + "src": "886:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "882:5:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3463, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "881:7:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "892:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "881:12:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3466, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "880:14:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "870:24:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "859:35:17" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3469, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3455, + "src": "911:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3474, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3455, + "src": "931:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "923:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:17", + "typeDescriptions": {} + } + }, + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "923:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "937:3:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "923:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "916:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 3470, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "916:6:17", + "typeDescriptions": {} + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:25:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3479, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "945:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3480, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3449, + "src": "949:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "945:5:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3482, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "944:7:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "916:35:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3484, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "915:37:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "911:41:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3453, + "id": 3486, + "nodeType": "Return", + "src": "904:48:17" + } + ] + }, + "documentation": { + "id": 3445, + "nodeType": "StructuredDocumentation", + "src": "598:126:17", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 3488, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "738:7:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "a", + "nameLocation": "753:1:17", + "nodeType": "VariableDeclaration", + "scope": 3488, + "src": "746:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3446, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "746:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3449, + "mutability": "mutable", + "name": "b", + "nameLocation": "763:1:17", + "nodeType": "VariableDeclaration", + "scope": 3488, + "src": "756:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3448, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "756:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "745:20:17" + }, + "returnParameters": { + "id": 3453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3452, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3488, + "src": "789:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3451, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "789:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "788:8:17" + }, + "scope": 3510, + "src": "729:230:17", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3508, + "nodeType": "Block", + "src": "1103:158:17", + "statements": [ + { + "id": 3507, + "nodeType": "UncheckedBlock", + "src": "1113:142:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3498, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "1228:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1228:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1241:2:17", + "subExpression": { + "id": 3502, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "1242:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1228:15:17", + "trueExpression": { + "id": 3501, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "1237:1:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1220:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1220:7:17", + "typeDescriptions": {} + } + }, + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1220:24:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3495, + "id": 3506, + "nodeType": "Return", + "src": "1213:31:17" + } + ] + } + ] + }, + "documentation": { + "id": 3489, + "nodeType": "StructuredDocumentation", + "src": "965:78:17", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 3509, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1057:3:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "n", + "nameLocation": "1068:1:17", + "nodeType": "VariableDeclaration", + "scope": 3509, + "src": "1061:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3490, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:17", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:10:17" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3494, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3509, + "src": "1094:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1094:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:9:17" + }, + "scope": 3510, + "src": "1048:213:17", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3511, + "src": "216:1047:17", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:1155:17" + }, + "id": 17 + }, + "contracts/NFT.sol": { + "ast": { + "absolutePath": "contracts/NFT.sol", + "exportedSymbols": { + "Context": [ + 2060 + ], + "CoreNFT": [ + 3711 + ], + "ERC165": [ + 2339 + ], + "ERC721": [ + 1325 + ], + "ERC721Enumerable": [ + 1844 + ], + "ERC721URIStorage": [ + 1970 + ], + "IERC165": [ + 2351 + ], + "IERC4906": [ + 175 + ], + "IERC721": [ + 1442 + ], + "IERC721Enumerable": [ + 2002 + ], + "IERC721Errors": [ + 269 + ], + "IERC721Metadata": [ + 2030 + ], + "IERC721Receiver": [ + 1460 + ], + "Math": [ + 3405 + ], + "Ownable": [ + 147 + ], + "SignedMath": [ + 3510 + ], + "Strings": [ + 2315 + ] + }, + "id": 3712, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3512, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "81:24:18" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "id": 3513, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3712, + "sourceUnit": 1326, + "src": "106:57:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "id": 3514, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3712, + "sourceUnit": 1845, + "src": "164:78:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "id": 3515, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3712, + "sourceUnit": 1971, + "src": "243:78:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3516, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3712, + "sourceUnit": 148, + "src": "322:52:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 3517, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3712, + "sourceUnit": 2316, + "src": "375:51:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3518, + "name": "ERC721", + "nameLocations": [ + "448:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "448:6:18" + }, + "id": 3519, + "nodeType": "InheritanceSpecifier", + "src": "448:6:18" + }, + { + "baseName": { + "id": 3520, + "name": "ERC721Enumerable", + "nameLocations": [ + "456:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1844, + "src": "456:16:18" + }, + "id": 3521, + "nodeType": "InheritanceSpecifier", + "src": "456:16:18" + }, + { + "baseName": { + "id": 3522, + "name": "ERC721URIStorage", + "nameLocations": [ + "474:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1970, + "src": "474:16:18" + }, + "id": 3523, + "nodeType": "InheritanceSpecifier", + "src": "474:16:18" + }, + { + "baseName": { + "id": 3524, + "name": "Ownable", + "nameLocations": [ + "492:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "492:7:18" + }, + "id": 3525, + "nodeType": "InheritanceSpecifier", + "src": "492:7:18" + } + ], + "canonicalName": "CoreNFT", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 3711, + "linearizedBaseContracts": [ + 3711, + 147, + 1970, + 1844, + 2002, + 1325, + 269, + 2030, + 175, + 1442, + 2339, + 2351, + 2060 + ], + "name": "CoreNFT", + "nameLocation": "437:7:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 3528, + "libraryName": { + "id": 3526, + "name": "Strings", + "nameLocations": [ + "512:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2315, + "src": "512:7:18" + }, + "nodeType": "UsingForDirective", + "src": "506:26:18", + "typeName": { + "id": 3527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "524:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3530, + "mutability": "mutable", + "name": "_nextTokenId", + "nameLocation": "553:12:18", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "537:28:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "537:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 3532, + "mutability": "mutable", + "name": "_baseURIExtended", + "nameLocation": "586:16:18", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "571:31:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3531, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "571:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 3553, + "nodeType": "Block", + "src": "704:70:18", + "statements": [ + { + "expression": { + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3545, + "name": "_baseURIExtended", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3532, + "src": "714:16:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3546, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3534, + "src": "733:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "714:27:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3548, + "nodeType": "ExpressionStatement", + "src": "714:27:18" + }, + { + "expression": { + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3549, + "name": "_nextTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3530, + "src": "751:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 3550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "766:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "751:16:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3552, + "nodeType": "ExpressionStatement", + "src": "751:16:18" + } + ] + }, + "id": 3554, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436f72654e4654", + "id": 3537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "665:9:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39dabc6d936aa4855abff026b9bef871d82dac64eab17aeb8a08e6e35ae51ede", + "typeString": "literal_string \"CoreNFT\"" + }, + "value": "CoreNFT" + }, + { + "hexValue": "434f5245", + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "676:6:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_907208bc2088fa777f18b43edd8b766e7243504cf8497f7ed936c65c7a446bbc", + "typeString": "literal_string \"CORE\"" + }, + "value": "CORE" + } + ], + "id": 3539, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3536, + "name": "ERC721", + "nameLocations": [ + "658:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "658:6:18" + }, + "nodeType": "ModifierInvocation", + "src": "658:25:18" + }, + { + "arguments": [ + { + "expression": { + "id": 3541, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "692:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "696:6:18", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "692:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3543, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3540, + "name": "Ownable", + "nameLocations": [ + "684:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "684:7:18" + }, + "nodeType": "ModifierInvocation", + "src": "684:19:18" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3534, + "mutability": "mutable", + "name": "baseURI_", + "nameLocation": "643:8:18", + "nodeType": "VariableDeclaration", + "scope": 3554, + "src": "629:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3533, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "629:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "619:38:18" + }, + "returnParameters": { + "id": 3544, + "nodeType": "ParameterList", + "parameters": [], + "src": "704:0:18" + }, + "scope": 3711, + "src": "608:166:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3565, + "nodeType": "Block", + "src": "842:44:18", + "statements": [ + { + "expression": { + "id": 3563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3561, + "name": "_baseURIExtended", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3532, + "src": "852:16:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3562, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3556, + "src": "871:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "852:27:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3564, + "nodeType": "ExpressionStatement", + "src": "852:27:18" + } + ] + }, + "functionSelector": "55f804b3", + "id": 3566, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3559, + "kind": "modifierInvocation", + "modifierName": { + "id": 3558, + "name": "onlyOwner", + "nameLocations": [ + "832:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "832:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "832:9:18" + } + ], + "name": "setBaseURI", + "nameLocation": "788:10:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3556, + "mutability": "mutable", + "name": "baseURI_", + "nameLocation": "813:8:18", + "nodeType": "VariableDeclaration", + "scope": 3566, + "src": "799:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3555, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "799:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "798:24:18" + }, + "returnParameters": { + "id": 3560, + "nodeType": "ParameterList", + "parameters": [], + "src": "842:0:18" + }, + "scope": 3711, + "src": "779:107:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3598, + "nodeType": "Block", + "src": "938:208:18", + "statements": [ + { + "assignments": [ + 3574 + ], + "declarations": [ + { + "constant": false, + "id": 3574, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "956:7:18", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "948:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "948:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3577, + "initialValue": { + "id": 3576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "966:14:18", + "subExpression": { + "id": 3575, + "name": "_nextTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3530, + "src": "966:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "948:32:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3579, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3568, + "src": "1000:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3580, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3574, + "src": "1004:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3578, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 947, + "src": "990:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "990:22:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3582, + "nodeType": "ExpressionStatement", + "src": "990:22:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3584, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3574, + "src": "1048:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 3591, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3574, + "src": "1110:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3589, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2315, + "src": "1093:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$2315_$", + "typeString": "type(library Strings)" + } + }, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1101:8:18", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "1093:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 3592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1093:25:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2e6a736f6e", + "id": 3593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1120:7:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "typeString": "literal_string \".json\"" + }, + "value": ".json" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "typeString": "literal_string \".json\"" + } + ], + "expression": { + "id": 3587, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "1076:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1080:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1076:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1076:52:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1069:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3585, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1069:6:18", + "typeDescriptions": {} + } + }, + "id": 3595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1069:60:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3583, + "name": "_setTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1969, + "src": "1022:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" + } + }, + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1022:117:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3597, + "nodeType": "ExpressionStatement", + "src": "1022:117:18" + } + ] + }, + "functionSelector": "40d097c3", + "id": 3599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3571, + "kind": "modifierInvocation", + "modifierName": { + "id": 3570, + "name": "onlyOwner", + "nameLocations": [ + "928:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "928:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "928:9:18" + } + ], + "name": "safeMint", + "nameLocation": "900:8:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3568, + "mutability": "mutable", + "name": "to", + "nameLocation": "917:2:18", + "nodeType": "VariableDeclaration", + "scope": 3599, + "src": "909:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "909:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "908:12:18" + }, + "returnParameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "938:0:18" + }, + "scope": 3711, + "src": "891:255:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 521 + ], + "body": { + "id": 3607, + "nodeType": "Block", + "src": "1226:40:18", + "statements": [ + { + "expression": { + "id": 3605, + "name": "_baseURIExtended", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3532, + "src": "1243:16:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 3604, + "id": 3606, + "nodeType": "Return", + "src": "1236:23:18" + } + ] + }, + "id": 3608, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "1160:8:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3601, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1193:8:18" + }, + "parameters": { + "id": 3600, + "nodeType": "ParameterList", + "parameters": [], + "src": "1168:2:18" + }, + "returnParameters": { + "id": 3604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3603, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3608, + "src": "1211:13:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1211:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1210:15:18" + }, + "scope": 3711, + "src": "1151:115:18", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3615, + "nodeType": "Block", + "src": "1330:36:18", + "statements": [ + { + "expression": { + "id": 3613, + "name": "_nextTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3530, + "src": "1347:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3612, + "id": 3614, + "nodeType": "Return", + "src": "1340:19:18" + } + ] + }, + "functionSelector": "56189236", + "id": 3616, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCurrentTokenId", + "nameLocation": "1280:17:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3609, + "nodeType": "ParameterList", + "parameters": [], + "src": "1297:2:18" + }, + "returnParameters": { + "id": 3612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3611, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3616, + "src": "1321:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1321:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1320:9:18" + }, + "scope": 3711, + "src": "1271:95:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 882, + 1659 + ], + "body": { + "id": 3637, + "nodeType": "Block", + "src": "1601:56:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3632, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "1632:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3633, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3620, + "src": "1636:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3634, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3622, + "src": "1645:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3630, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "1618:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_CoreNFT_$3711_$", + "typeString": "type(contract super CoreNFT)" + } + }, + "id": 3631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1624:7:18", + "memberName": "_update", + "nodeType": "MemberAccess", + "referencedDeclaration": 1659, + "src": "1618:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 3635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1618:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3629, + "id": 3636, + "nodeType": "Return", + "src": "1611:39:18" + } + ] + }, + "id": 3638, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "1458:7:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3626, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3624, + "name": "ERC721", + "nameLocations": [ + "1557:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1557:6:18" + }, + { + "id": 3625, + "name": "ERC721Enumerable", + "nameLocations": [ + "1565:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1844, + "src": "1565:16:18" + } + ], + "src": "1548:34:18" + }, + "parameters": { + "id": 3623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3618, + "mutability": "mutable", + "name": "to", + "nameLocation": "1483:2:18", + "nodeType": "VariableDeclaration", + "scope": 3638, + "src": "1475:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1475:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3620, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1503:7:18", + "nodeType": "VariableDeclaration", + "scope": 3638, + "src": "1495:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1495:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3622, + "mutability": "mutable", + "name": "auth", + "nameLocation": "1528:4:18", + "nodeType": "VariableDeclaration", + "scope": 3638, + "src": "1520:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1520:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1465:73:18" + }, + "returnParameters": { + "id": 3629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3628, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3638, + "src": "1592:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1592:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1591:9:18" + }, + "scope": 3711, + "src": "1449:208:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 792, + 1843 + ], + "body": { + "id": 3655, + "nodeType": "Block", + "src": "1786:55:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3651, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3640, + "src": "1819:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3652, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3642, + "src": "1828:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + ], + "expression": { + "id": 3648, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "1796:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_CoreNFT_$3711_$", + "typeString": "type(contract super CoreNFT)" + } + }, + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1802:16:18", + "memberName": "_increaseBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 1843, + "src": "1796:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$", + "typeString": "function (address,uint128)" + } + }, + "id": 3653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1796:38:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3654, + "nodeType": "ExpressionStatement", + "src": "1796:38:18" + } + ] + }, + "id": 3656, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_increaseBalance", + "nameLocation": "1671:16:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3646, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3644, + "name": "ERC721", + "nameLocations": [ + "1760:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1760:6:18" + }, + { + "id": 3645, + "name": "ERC721Enumerable", + "nameLocations": [ + "1768:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1844, + "src": "1768:16:18" + } + ], + "src": "1751:34:18" + }, + "parameters": { + "id": 3643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3640, + "mutability": "mutable", + "name": "account", + "nameLocation": "1705:7:18", + "nodeType": "VariableDeclaration", + "scope": 3656, + "src": "1697:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1697:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3642, + "mutability": "mutable", + "name": "value", + "nameLocation": "1730:5:18", + "nodeType": "VariableDeclaration", + "scope": 3656, + "src": "1722:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 3641, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1722:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "1687:54:18" + }, + "returnParameters": { + "id": 3647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1786:0:18" + }, + "scope": 3711, + "src": "1662:179:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 512, + 1950 + ], + "body": { + "id": 3692, + "nodeType": "Block", + "src": "1966:207:18", + "statements": [ + { + "assignments": [ + 3667 + ], + "declarations": [ + { + "constant": false, + "id": 3667, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "1990:7:18", + "nodeType": "VariableDeclaration", + "scope": 3692, + "src": "1976:21:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3666, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1976:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3670, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3668, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3608 + ], + "referencedDeclaration": 3608, + "src": "2000:8:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 3669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2000:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1976:34:18" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3673, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3667, + "src": "2045:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2039:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3671, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2039:5:18", + "typeDescriptions": {} + } + }, + "id": 3674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2039:14:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2054:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2039:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2063:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2039:25:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2164:2:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2039:127:18", + "trueExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 3682, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3667, + "src": "2107:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3683, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3658, + "src": "2116:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2124:8:18", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "2116:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 3685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2116:18:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2e6a736f6e", + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2136:7:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "typeString": "literal_string \".json\"" + }, + "value": ".json" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", + "typeString": "literal_string \".json\"" + } + ], + "expression": { + "id": 3680, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2090:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2094:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "2090:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2090:54:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2083:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3678, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2083:6:18", + "typeDescriptions": {} + } + }, + "id": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2083:62:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3665, + "id": 3691, + "nodeType": "Return", + "src": "2020:146:18" + } + ] + }, + "functionSelector": "c87b56dd", + "id": 3693, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "1855:8:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3662, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3660, + "name": "ERC721", + "nameLocations": [ + "1916:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1916:6:18" + }, + { + "id": 3661, + "name": "ERC721URIStorage", + "nameLocations": [ + "1924:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1970, + "src": "1924:16:18" + } + ], + "src": "1907:34:18" + }, + "parameters": { + "id": 3659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3658, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1881:7:18", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "1873:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1873:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1863:31:18" + }, + "returnParameters": { + "id": 3665, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3664, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "1951:13:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3663, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1951:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1950:15:18" + }, + "scope": 3711, + "src": "1846:327:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 417, + 1524, + 1893 + ], + "body": { + "id": 3709, + "nodeType": "Block", + "src": "2355:60:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3706, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3695, + "src": "2396:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3704, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "2372:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_CoreNFT_$3711_$", + "typeString": "type(contract super CoreNFT)" + } + }, + "id": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2378:17:18", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1893, + "src": "2372:23:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2372:36:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3703, + "id": 3708, + "nodeType": "Return", + "src": "2365:43:18" + } + ] + }, + "functionSelector": "01ffc9a7", + "id": 3710, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2187:17:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3700, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3697, + "name": "ERC721", + "nameLocations": [ + "2284:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "2284:6:18" + }, + { + "id": 3698, + "name": "ERC721Enumerable", + "nameLocations": [ + "2292:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1844, + "src": "2292:16:18" + }, + { + "id": 3699, + "name": "ERC721URIStorage", + "nameLocations": [ + "2310:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1970, + "src": "2310:16:18" + } + ], + "src": "2275:52:18" + }, + "parameters": { + "id": 3696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3695, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2221:11:18", + "nodeType": "VariableDeclaration", + "scope": 3710, + "src": "2214:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3694, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2214:6:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2204:34:18" + }, + "returnParameters": { + "id": 3703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3702, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3710, + "src": "2345:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3701, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2345:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2344:6:18" + }, + "scope": 3711, + "src": "2178:237:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3712, + "src": "428:1989:18", + "usedErrors": [ + 13, + 18, + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268, + 1497, + 1500 + ], + "usedEvents": [ + 24, + 167, + 174, + 1341, + 1350, + 1359 + ] + } + ], + "src": "81:2337:18" + }, + "id": 18 + } + } + } +} \ No newline at end of file diff --git a/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/readme.md b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/readme.md new file mode 100644 index 00000000..240b757d --- /dev/null +++ b/University-Dev-Tours/India/MIT-Meerut/Satyam_MIT/readme.md @@ -0,0 +1,101 @@ +# Metaschool x Core + +Welcome❕ 🚀This README provides essential information and resources for setting up the project. + +## Table of Contents + +1. [Important Links](#important-links) +2. [Core Network Details](#core-network-details) +3. [Setting Up Git](#setting-up-git) +4. [Git Commands](#git-commands) +5. [Project Repository Details](#project-repository-details) + +## Important Links + +- [Metaschool Official Website](https://metaschool.so/) +- [MetaMask Extension](https://metamask.io/) +- [GitHub Official Website](https://github.com/) +- [Core Testnet Faucet](https://scan.test.btcs.network/faucet) +- [Remix IDE](https://remix.ethereum.org/) +- [Form Link](https://forms.gle/QYJeoo7hRupCstYX7) + +## Core Network Details + +To connect to the Core Testnet, use the following network configuration in your wallet: + +- **Network Name**: Core Testnet +- **New RPC URL**: https://rpc.test.btcs.network/ +- **Chain ID**: 1115 +- **Currency Symbol**: TCORE +- **Block Explorer URL**: https://scan.test.btcs.network/ + +## Setting Up Git + +You can download it from the [Git Official Website](https://git-scm.com/download/win). + +## Git Commands + +Here's a quick guide to essential Git commands for this project: + +### Configuring Git + +Set up your Git identity with these commands: + +``` +git config --global user.name "Your Name" +git config --global user.email "your.email@example.com" +``` + +Replace "Your Name" and "your.email@example.com" with your actual name and email. + +### Cloning the Repository + +To clone the forked repository: + +``` +git clone +``` + +Replace `` with the actual URL of your forked repository. + +### Creating a Project Folder + +Navigate to the cloned repository and create your project folder: + +``` +cd +mkdir +``` + +Replace `` with the name of the cloned repository and `` with your desired folder name. + +### Staging, Committing, and Pushing Changes + +After making changes, use these commands to push your work: + +``` +git add . +git commit -m "Your commit message" +git push origin main +``` + +Replace "Your commit message" with a brief description of your changes. + +## Project Repository Details + +- **Project Repository**: [https://github.com/b0ney-1/CoreWorkshop.git](https://github.com/b0ney-1/CoreWorkshop.git) +- **Branch Name**: main +- **Official Core Repository (For Fork)**:[Build on Core](https://github.com/coredao-org/Build-On-Core/tree/main) +- **BASE URI for Metadata**:[https://b0ney-1.github.io/10k/generated_metadata/](https://b0ney-1.github.io/10k/generated_metadata/) +- **NFT Minter**:[NFT Minter App](https://nft-minter-blond.vercel.app/) + +**Important**: Your project must be placed in the following folder: + +``` +University-Dev-Tours/India/ +``` + +Ensure that all your project files and folders are created within this directory structure. +**One more Important thingy**: Delete the .git folder after placing it inside the above directory to avoid sub-modules + +Happy coding!